Text Compare
Produced: 7/19/2015 1:58:08 PM
   
Mode:  All, With Context  
Left file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template09\0718-1345\valgrind-bug-11771-11770\sanity\coregrind\m_gdbserver\m_gdbserver.c  
Right file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template09\0718-1345\valgrind-bug-11771-11770\000000\coregrind\m_gdbserver\m_gdbserver.c  
1 typedef unsigned char UChar; = 1 typedef unsigned char UChar;
2 typedef signed char Char;   2 typedef signed char Char;
3 typedef char HChar;   3 typedef char HChar;
4 typedef unsigned short UShort;   4 typedef unsigned short UShort;
5 typedef short Short;   5 typedef short Short;
6 typedef unsigned int UInt;   6 typedef unsigned int UInt;
7 typedef int Int;   7 typedef int Int;
8 typedef unsigned long long ULong;   8 typedef unsigned long long ULong;
9 typedef long long Long;   9 typedef long long Long;
10 typedef UInt U128[4];   10 typedef UInt U128[4];
11 union __anonunion_V128_1 {   11 union __anonunion_V128_1 {
12    UChar w8[16] ;   12    UChar w8[16] ;
13    UShort w16[8] ;   13    UShort w16[8] ;
14    UInt w32[4] ;   14    UInt w32[4] ;
15    ULong w64[2] ;   15    ULong w64[2] ;
16 };   16 };
17 typedef union __anonunion_V128_1 V128;   17 typedef union __anonunion_V128_1 V128;
18 typedef float Float;   18 typedef float Float;
19 typedef double Double;   19 typedef double Double;
20 typedef unsigned char Bool;   20 typedef unsigned char Bool;
21 typedef UInt Addr32;   21 typedef UInt Addr32;
22 typedef ULong Addr64;   22 typedef ULong Addr64;
23 typedef unsigned long HWord;   23 typedef unsigned long HWord;
24 typedef __builtin_va_list __gnuc_va_list;   24 typedef __builtin_va_list __gnuc_va_list;
25 typedef __gnuc_va_list va_list;   25 typedef __gnuc_va_list va_list;
26 typedef unsigned long UWord;   26 typedef unsigned long UWord;
27 typedef long Word;   27 typedef long Word;
28 typedef UWord Addr;   28 typedef UWord Addr;
29 typedef UWord AddrH;   29 typedef UWord AddrH;
30 typedef UWord SizeT;   30 typedef UWord SizeT;
31 typedef Word SSizeT;   31 typedef Word SSizeT;
32 typedef Word PtrdiffT;   32 typedef Word PtrdiffT;
33 typedef Word OffT;   33 typedef Word OffT;
34 typedef Long Off64T;   34 typedef Long Off64T;
35 struct __anonstruct_UWordPair_2 {   35 struct __anonstruct_UWordPair_2 {
36    UWord uw1 ;   36    UWord uw1 ;
37    UWord uw2 ;   37    UWord uw2 ;
38 };   38 };
39 typedef struct __anonstruct_UWordPair_2 UWordPair;   39 typedef struct __anonstruct_UWordPair_2 UWordPair;
40 typedef UInt ThreadId;   40 typedef UInt ThreadId;
41 struct __anonstruct_SysRes_3 {   41 struct __anonstruct_SysRes_3 {
42    UWord _val ;   42    UWord _val ;
43    Bool _isError ;   43    Bool _isError ;
44 };   44 };
45 typedef struct __anonstruct_SysRes_3 SysRes;   45 typedef struct __anonstruct_SysRes_3 SysRes;
46 enum __anonenum_IRType_4 {   46 enum __anonenum_IRType_4 {
47     Ity_INVALID = 69632,   47     Ity_INVALID = 69632,
48     Ity_I1 = 69633,   48     Ity_I1 = 69633,
49     Ity_I8 = 69634,   49     Ity_I8 = 69634,
50     Ity_I16 = 69635,   50     Ity_I16 = 69635,
51     Ity_I32 = 69636,   51     Ity_I32 = 69636,
52     Ity_I64 = 69637,   52     Ity_I64 = 69637,
53     Ity_I128 = 69638,   53     Ity_I128 = 69638,
54     Ity_F32 = 69639,   54     Ity_F32 = 69639,
55     Ity_F64 = 69640,   55     Ity_F64 = 69640,
56     Ity_F128 = 69641,   56     Ity_F128 = 69641,
57     Ity_V128 = 69642   57     Ity_V128 = 69642
58 } ;   58 } ;
59 typedef enum __anonenum_IRType_4 IRType;   59 typedef enum __anonenum_IRType_4 IRType;
60 enum __anonenum_IREndness_5 {   60 enum __anonenum_IREndness_5 {
61     Iend_LE = 73728,   61     Iend_LE = 73728,
62     Iend_BE = 73729   62     Iend_BE = 73729
63 } ;   63 } ;
64 typedef enum __anonenum_IREndness_5 IREndness;   64 typedef enum __anonenum_IREndness_5 IREndness;
65 enum __anonenum_IRConstTag_6 {   65 enum __anonenum_IRConstTag_6 {
66     Ico_U1 = 77824,   66     Ico_U1 = 77824,
67     Ico_U8 = 77825,   67     Ico_U8 = 77825,
68     Ico_U16 = 77826,   68     Ico_U16 = 77826,
69     Ico_U32 = 77827,   69     Ico_U32 = 77827,
70     Ico_U64 = 77828,   70     Ico_U64 = 77828,
71     Ico_F32 = 77829,   71     Ico_F32 = 77829,
72     Ico_F32i = 77830,   72     Ico_F32i = 77830,
73     Ico_F64 = 77831,   73     Ico_F64 = 77831,
74     Ico_F64i = 77832,   74     Ico_F64i = 77832,
75     Ico_V128 = 77833   75     Ico_V128 = 77833
76 } ;   76 } ;
77 typedef enum __anonenum_IRConstTag_6 IRConstTag;   77 typedef enum __anonenum_IRConstTag_6 IRConstTag;
78 union __anonunion_Ico_7 {   78 union __anonunion_Ico_7 {
79    Bool U1 ;   79    Bool U1 ;
80    UChar U8 ;   80    UChar U8 ;
81    UShort U16 ;   81    UShort U16 ;
82    UInt U32 ;   82    UInt U32 ;
83    ULong U64 ;   83    ULong U64 ;
84    Float F32 ;   84    Float F32 ;
85    UInt F32i ;   85    UInt F32i ;
86    Double F64 ;   86    Double F64 ;
87    ULong F64i ;   87    ULong F64i ;
88    UShort V128 ;   88    UShort V128 ;
89 };   89 };
90 struct _IRConst {   90 struct _IRConst {
91    IRConstTag tag ;   91    IRConstTag tag ;
92    union __anonunion_Ico_7 Ico ;   92    union __anonunion_Ico_7 Ico ;
93 };   93 };
94 typedef struct _IRConst IRConst;   94 typedef struct _IRConst IRConst;
95 struct __anonstruct_IRCallee_8 {   95 struct __anonstruct_IRCallee_8 {
96    Int regparms ;   96    Int regparms ;
97    HChar *name ;   97    HChar *name ;
98    void *addr ;   98    void *addr ;
99    UInt mcx_mask ;   99    UInt mcx_mask ;
100 };   100 };
101 typedef struct __anonstruct_IRCallee_8 IRCallee;   101 typedef struct __anonstruct_IRCallee_8 IRCallee;
102 struct __anonstruct_IRRegArray_9 {   102 struct __anonstruct_IRRegArray_9 {
103    Int base ;   103    Int base ;
104    IRType elemTy ;   104    IRType elemTy ;
105    Int nElems ;   105    Int nElems ;
106 };   106 };
107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;   107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;
108 typedef UInt IRTemp;   108 typedef UInt IRTemp;
109 enum __anonenum_IROp_10 {   109 enum __anonenum_IROp_10 {
110     Iop_INVALID = 81920,   110     Iop_INVALID = 81920,
111     Iop_Add8 = 81921,   111     Iop_Add8 = 81921,
112     Iop_Add16 = 81922,   112     Iop_Add16 = 81922,
113     Iop_Add32 = 81923,   113     Iop_Add32 = 81923,
114     Iop_Add64 = 81924,   114     Iop_Add64 = 81924,
115     Iop_Sub8 = 81925,   115     Iop_Sub8 = 81925,
116     Iop_Sub16 = 81926,   116     Iop_Sub16 = 81926,
117     Iop_Sub32 = 81927,   117     Iop_Sub32 = 81927,
118     Iop_Sub64 = 81928,   118     Iop_Sub64 = 81928,
119     Iop_Mul8 = 81929,   119     Iop_Mul8 = 81929,
120     Iop_Mul16 = 81930,   120     Iop_Mul16 = 81930,
121     Iop_Mul32 = 81931,   121     Iop_Mul32 = 81931,
122     Iop_Mul64 = 81932,   122     Iop_Mul64 = 81932,
123     Iop_Or8 = 81933,   123     Iop_Or8 = 81933,
124     Iop_Or16 = 81934,   124     Iop_Or16 = 81934,
125     Iop_Or32 = 81935,   125     Iop_Or32 = 81935,
126     Iop_Or64 = 81936,   126     Iop_Or64 = 81936,
127     Iop_And8 = 81937,   127     Iop_And8 = 81937,
128     Iop_And16 = 81938,   128     Iop_And16 = 81938,
129     Iop_And32 = 81939,   129     Iop_And32 = 81939,
130     Iop_And64 = 81940,   130     Iop_And64 = 81940,
131     Iop_Xor8 = 81941,   131     Iop_Xor8 = 81941,
132     Iop_Xor16 = 81942,   132     Iop_Xor16 = 81942,
133     Iop_Xor32 = 81943,   133     Iop_Xor32 = 81943,
134     Iop_Xor64 = 81944,   134     Iop_Xor64 = 81944,
135     Iop_Shl8 = 81945,   135     Iop_Shl8 = 81945,
136     Iop_Shl16 = 81946,   136     Iop_Shl16 = 81946,
137     Iop_Shl32 = 81947,   137     Iop_Shl32 = 81947,
138     Iop_Shl64 = 81948,   138     Iop_Shl64 = 81948,
139     Iop_Shr8 = 81949,   139     Iop_Shr8 = 81949,
140     Iop_Shr16 = 81950,   140     Iop_Shr16 = 81950,
141     Iop_Shr32 = 81951,   141     Iop_Shr32 = 81951,
142     Iop_Shr64 = 81952,   142     Iop_Shr64 = 81952,
143     Iop_Sar8 = 81953,   143     Iop_Sar8 = 81953,
144     Iop_Sar16 = 81954,   144     Iop_Sar16 = 81954,
145     Iop_Sar32 = 81955,   145     Iop_Sar32 = 81955,
146     Iop_Sar64 = 81956,   146     Iop_Sar64 = 81956,
147     Iop_CmpEQ8 = 81957,   147     Iop_CmpEQ8 = 81957,
148     Iop_CmpEQ16 = 81958,   148     Iop_CmpEQ16 = 81958,
149     Iop_CmpEQ32 = 81959,   149     Iop_CmpEQ32 = 81959,
150     Iop_CmpEQ64 = 81960,   150     Iop_CmpEQ64 = 81960,
151     Iop_CmpNE8 = 81961,   151     Iop_CmpNE8 = 81961,
152     Iop_CmpNE16 = 81962,   152     Iop_CmpNE16 = 81962,
153     Iop_CmpNE32 = 81963,   153     Iop_CmpNE32 = 81963,
154     Iop_CmpNE64 = 81964,   154     Iop_CmpNE64 = 81964,
155     Iop_Not8 = 81965,   155     Iop_Not8 = 81965,
156     Iop_Not16 = 81966,   156     Iop_Not16 = 81966,
157     Iop_Not32 = 81967,   157     Iop_Not32 = 81967,
158     Iop_Not64 = 81968,   158     Iop_Not64 = 81968,
159     Iop_CasCmpEQ8 = 81969,   159     Iop_CasCmpEQ8 = 81969,
160     Iop_CasCmpEQ16 = 81970,   160     Iop_CasCmpEQ16 = 81970,
161     Iop_CasCmpEQ32 = 81971,   161     Iop_CasCmpEQ32 = 81971,
162     Iop_CasCmpEQ64 = 81972,   162     Iop_CasCmpEQ64 = 81972,
163     Iop_CasCmpNE8 = 81973,   163     Iop_CasCmpNE8 = 81973,
164     Iop_CasCmpNE16 = 81974,   164     Iop_CasCmpNE16 = 81974,
165     Iop_CasCmpNE32 = 81975,   165     Iop_CasCmpNE32 = 81975,
166     Iop_CasCmpNE64 = 81976,   166     Iop_CasCmpNE64 = 81976,
167     Iop_MullS8 = 81977,   167     Iop_MullS8 = 81977,
168     Iop_MullS16 = 81978,   168     Iop_MullS16 = 81978,
169     Iop_MullS32 = 81979,   169     Iop_MullS32 = 81979,
170     Iop_MullS64 = 81980,   170     Iop_MullS64 = 81980,
171     Iop_MullU8 = 81981,   171     Iop_MullU8 = 81981,
172     Iop_MullU16 = 81982,   172     Iop_MullU16 = 81982,
173     Iop_MullU32 = 81983,   173     Iop_MullU32 = 81983,
174     Iop_MullU64 = 81984,   174     Iop_MullU64 = 81984,
175     Iop_Clz64 = 81985,   175     Iop_Clz64 = 81985,
176     Iop_Clz32 = 81986,   176     Iop_Clz32 = 81986,
177     Iop_Ctz64 = 81987,   177     Iop_Ctz64 = 81987,
178     Iop_Ctz32 = 81988,   178     Iop_Ctz32 = 81988,
179     Iop_CmpLT32S = 81989,   179     Iop_CmpLT32S = 81989,
180     Iop_CmpLT64S = 81990,   180     Iop_CmpLT64S = 81990,
181     Iop_CmpLE32S = 81991,   181     Iop_CmpLE32S = 81991,
182     Iop_CmpLE64S = 81992,   182     Iop_CmpLE64S = 81992,
183     Iop_CmpLT32U = 81993,   183     Iop_CmpLT32U = 81993,
184     Iop_CmpLT64U = 81994,   184     Iop_CmpLT64U = 81994,
185     Iop_CmpLE32U = 81995,   185     Iop_CmpLE32U = 81995,
186     Iop_CmpLE64U = 81996,   186     Iop_CmpLE64U = 81996,
187     Iop_CmpNEZ8 = 81997,   187     Iop_CmpNEZ8 = 81997,
188     Iop_CmpNEZ16 = 81998,   188     Iop_CmpNEZ16 = 81998,
189     Iop_CmpNEZ32 = 81999,   189     Iop_CmpNEZ32 = 81999,
190     Iop_CmpNEZ64 = 82000,   190     Iop_CmpNEZ64 = 82000,
191     Iop_CmpwNEZ32 = 82001,   191     Iop_CmpwNEZ32 = 82001,
192     Iop_CmpwNEZ64 = 82002,   192     Iop_CmpwNEZ64 = 82002,
193     Iop_Left8 = 82003,   193     Iop_Left8 = 82003,
194     Iop_Left16 = 82004,   194     Iop_Left16 = 82004,
195     Iop_Left32 = 82005,   195     Iop_Left32 = 82005,
196     Iop_Left64 = 82006,   196     Iop_Left64 = 82006,
197     Iop_Max32U = 82007,   197     Iop_Max32U = 82007,
198     Iop_CmpORD32U = 82008,   198     Iop_CmpORD32U = 82008,
199     Iop_CmpORD64U = 82009,   199     Iop_CmpORD64U = 82009,
200     Iop_CmpORD32S = 82010,   200     Iop_CmpORD32S = 82010,
201     Iop_CmpORD64S = 82011,   201     Iop_CmpORD64S = 82011,
202     Iop_DivU32 = 82012,   202     Iop_DivU32 = 82012,
203     Iop_DivS32 = 82013,   203     Iop_DivS32 = 82013,
204     Iop_DivU64 = 82014,   204     Iop_DivU64 = 82014,
205     Iop_DivS64 = 82015,   205     Iop_DivS64 = 82015,
206     Iop_DivModU64to32 = 82016,   206     Iop_DivModU64to32 = 82016,
207     Iop_DivModS64to32 = 82017,   207     Iop_DivModS64to32 = 82017,
208     Iop_DivModU128to64 = 82018,   208     Iop_DivModU128to64 = 82018,
209     Iop_DivModS128to64 = 82019,   209     Iop_DivModS128to64 = 82019,
210     Iop_DivModS64to64 = 82020,   210     Iop_DivModS64to64 = 82020,
211     Iop_8Uto16 = 82021,   211     Iop_8Uto16 = 82021,
212     Iop_8Uto32 = 82022,   212     Iop_8Uto32 = 82022,
213     Iop_8Uto64 = 82023,   213     Iop_8Uto64 = 82023,
214     Iop_16Uto32 = 82024,   214     Iop_16Uto32 = 82024,
215     Iop_16Uto64 = 82025,   215     Iop_16Uto64 = 82025,
216     Iop_32Uto64 = 82026,   216     Iop_32Uto64 = 82026,
217     Iop_8Sto16 = 82027,   217     Iop_8Sto16 = 82027,
218     Iop_8Sto32 = 82028,   218     Iop_8Sto32 = 82028,
219     Iop_8Sto64 = 82029,   219     Iop_8Sto64 = 82029,
220     Iop_16Sto32 = 82030,   220     Iop_16Sto32 = 82030,
221     Iop_16Sto64 = 82031,   221     Iop_16Sto64 = 82031,
222     Iop_32Sto64 = 82032,   222     Iop_32Sto64 = 82032,
223     Iop_64to8 = 82033,   223     Iop_64to8 = 82033,
224     Iop_32to8 = 82034,   224     Iop_32to8 = 82034,
225     Iop_64to16 = 82035,   225     Iop_64to16 = 82035,
226     Iop_16to8 = 82036,   226     Iop_16to8 = 82036,
227     Iop_16HIto8 = 82037,   227     Iop_16HIto8 = 82037,
228     Iop_8HLto16 = 82038,   228     Iop_8HLto16 = 82038,
229     Iop_32to16 = 82039,   229     Iop_32to16 = 82039,
230     Iop_32HIto16 = 82040,   230     Iop_32HIto16 = 82040,
231     Iop_16HLto32 = 82041,   231     Iop_16HLto32 = 82041,
232     Iop_64to32 = 82042,   232     Iop_64to32 = 82042,
233     Iop_64HIto32 = 82043,   233     Iop_64HIto32 = 82043,
234     Iop_32HLto64 = 82044,   234     Iop_32HLto64 = 82044,
235     Iop_128to64 = 82045,   235     Iop_128to64 = 82045,
236     Iop_128HIto64 = 82046,   236     Iop_128HIto64 = 82046,
237     Iop_64HLto128 = 82047,   237     Iop_64HLto128 = 82047,
238     Iop_Not1 = 82048,   238     Iop_Not1 = 82048,
239     Iop_32to1 = 82049,   239     Iop_32to1 = 82049,
240     Iop_64to1 = 82050,   240     Iop_64to1 = 82050,
241     Iop_1Uto8 = 82051,   241     Iop_1Uto8 = 82051,
242     Iop_1Uto32 = 82052,   242     Iop_1Uto32 = 82052,
243     Iop_1Uto64 = 82053,   243     Iop_1Uto64 = 82053,
244     Iop_1Sto8 = 82054,   244     Iop_1Sto8 = 82054,
245     Iop_1Sto16 = 82055,   245     Iop_1Sto16 = 82055,
246     Iop_1Sto32 = 82056,   246     Iop_1Sto32 = 82056,
247     Iop_1Sto64 = 82057,   247     Iop_1Sto64 = 82057,
248     Iop_AddF64 = 82058,   248     Iop_AddF64 = 82058,
249     Iop_SubF64 = 82059,   249     Iop_SubF64 = 82059,
250     Iop_MulF64 = 82060,   250     Iop_MulF64 = 82060,
251     Iop_DivF64 = 82061,   251     Iop_DivF64 = 82061,
252     Iop_AddF32 = 82062,   252     Iop_AddF32 = 82062,
253     Iop_SubF32 = 82063,   253     Iop_SubF32 = 82063,
254     Iop_MulF32 = 82064,   254     Iop_MulF32 = 82064,
255     Iop_DivF32 = 82065,   255     Iop_DivF32 = 82065,
256     Iop_AddF64r32 = 82066,   256     Iop_AddF64r32 = 82066,
257     Iop_SubF64r32 = 82067,   257     Iop_SubF64r32 = 82067,
258     Iop_MulF64r32 = 82068,   258     Iop_MulF64r32 = 82068,
259     Iop_DivF64r32 = 82069,   259     Iop_DivF64r32 = 82069,
260     Iop_NegF64 = 82070,   260     Iop_NegF64 = 82070,
261     Iop_AbsF64 = 82071,   261     Iop_AbsF64 = 82071,
262     Iop_NegF32 = 82072,   262     Iop_NegF32 = 82072,
263     Iop_AbsF32 = 82073,   263     Iop_AbsF32 = 82073,
264     Iop_SqrtF64 = 82074,   264     Iop_SqrtF64 = 82074,
265     Iop_SqrtF64r32 = 82075,   265     Iop_SqrtF64r32 = 82075,
266     Iop_SqrtF32 = 82076,   266     Iop_SqrtF32 = 82076,
267     Iop_CmpF64 = 82077,   267     Iop_CmpF64 = 82077,
268     Iop_CmpF32 = 82078,   268     Iop_CmpF32 = 82078,
269     Iop_CmpF128 = 82079,   269     Iop_CmpF128 = 82079,
270     Iop_F64toI16S = 82080,   270     Iop_F64toI16S = 82080,
271     Iop_F64toI32S = 82081,   271     Iop_F64toI32S = 82081,
272     Iop_F64toI64S = 82082,   272     Iop_F64toI64S = 82082,
273     Iop_F64toI32U = 82083,   273     Iop_F64toI32U = 82083,
274     Iop_I16StoF64 = 82084,   274     Iop_I16StoF64 = 82084,
275     Iop_I32StoF64 = 82085,   275     Iop_I32StoF64 = 82085,
276     Iop_I64StoF64 = 82086,   276     Iop_I64StoF64 = 82086,
277     Iop_I64UtoF64 = 82087,   277     Iop_I64UtoF64 = 82087,
278     Iop_I64UtoF32 = 82088,   278     Iop_I64UtoF32 = 82088,
279     Iop_I32UtoF64 = 82089,   279     Iop_I32UtoF64 = 82089,
280     Iop_F32toI16S = 82090,   280     Iop_F32toI16S = 82090,
281     Iop_F32toI32S = 82091,   281     Iop_F32toI32S = 82091,
282     Iop_F32toI64S = 82092,   282     Iop_F32toI64S = 82092,
283     Iop_I16StoF32 = 82093,   283     Iop_I16StoF32 = 82093,
284     Iop_I32StoF32 = 82094,   284     Iop_I32StoF32 = 82094,
285     Iop_I64StoF32 = 82095,   285     Iop_I64StoF32 = 82095,
286     Iop_F32toF64 = 82096,   286     Iop_F32toF64 = 82096,
287     Iop_F64toF32 = 82097,   287     Iop_F64toF32 = 82097,
288     Iop_ReinterpF64asI64 = 82098,   288     Iop_ReinterpF64asI64 = 82098,
289     Iop_ReinterpI64asF64 = 82099,   289     Iop_ReinterpI64asF64 = 82099,
290     Iop_ReinterpF32asI32 = 82100,   290     Iop_ReinterpF32asI32 = 82100,
291     Iop_ReinterpI32asF32 = 82101,   291     Iop_ReinterpI32asF32 = 82101,
292     Iop_F64HLtoF128 = 82102,   292     Iop_F64HLtoF128 = 82102,
293     Iop_F128HItoF64 = 82103,   293     Iop_F128HItoF64 = 82103,
294     Iop_F128LOtoF64 = 82104,   294     Iop_F128LOtoF64 = 82104,
295     Iop_AddF128 = 82105,   295     Iop_AddF128 = 82105,
296     Iop_SubF128 = 82106,   296     Iop_SubF128 = 82106,
297     Iop_MulF128 = 82107,   297     Iop_MulF128 = 82107,
298     Iop_DivF128 = 82108,   298     Iop_DivF128 = 82108,
299     Iop_NegF128 = 82109,   299     Iop_NegF128 = 82109,
300     Iop_AbsF128 = 82110,   300     Iop_AbsF128 = 82110,
301     Iop_SqrtF128 = 82111,   301     Iop_SqrtF128 = 82111,
302     Iop_I32StoF128 = 82112,   302     Iop_I32StoF128 = 82112,
303     Iop_I64StoF128 = 82113,   303     Iop_I64StoF128 = 82113,
304     Iop_F32toF128 = 82114,   304     Iop_F32toF128 = 82114,
305     Iop_F64toF128 = 82115,   305     Iop_F64toF128 = 82115,
306     Iop_F128toI32S = 82116,   306     Iop_F128toI32S = 82116,
307     Iop_F128toI64S = 82117,   307     Iop_F128toI64S = 82117,
308     Iop_F128toF64 = 82118,   308     Iop_F128toF64 = 82118,
309     Iop_F128toF32 = 82119,   309     Iop_F128toF32 = 82119,
310     Iop_AtanF64 = 82120,   310     Iop_AtanF64 = 82120,
311     Iop_Yl2xF64 = 82121,   311     Iop_Yl2xF64 = 82121,
312     Iop_Yl2xp1F64 = 82122,   312     Iop_Yl2xp1F64 = 82122,
313     Iop_PRemF64 = 82123,   313     Iop_PRemF64 = 82123,
314     Iop_PRemC3210F64 = 82124,   314     Iop_PRemC3210F64 = 82124,
315     Iop_PRem1F64 = 82125,   315     Iop_PRem1F64 = 82125,
316     Iop_PRem1C3210F64 = 82126,   316     Iop_PRem1C3210F64 = 82126,
317     Iop_ScaleF64 = 82127,   317     Iop_ScaleF64 = 82127,
318     Iop_SinF64 = 82128,   318     Iop_SinF64 = 82128,
319     Iop_CosF64 = 82129,   319     Iop_CosF64 = 82129,
320     Iop_TanF64 = 82130,   320     Iop_TanF64 = 82130,
321     Iop_2xm1F64 = 82131,   321     Iop_2xm1F64 = 82131,
322     Iop_RoundF64toInt = 82132,   322     Iop_RoundF64toInt = 82132,
323     Iop_RoundF32toInt = 82133,   323     Iop_RoundF32toInt = 82133,
324     Iop_MAddF32 = 82134,   324     Iop_MAddF32 = 82134,
325     Iop_MSubF32 = 82135,   325     Iop_MSubF32 = 82135,
326     Iop_MAddF64 = 82136,   326     Iop_MAddF64 = 82136,
327     Iop_MSubF64 = 82137,   327     Iop_MSubF64 = 82137,
328     Iop_MAddF64r32 = 82138,   328     Iop_MAddF64r32 = 82138,
329     Iop_MSubF64r32 = 82139,   329     Iop_MSubF64r32 = 82139,
330     Iop_Est5FRSqrt = 82140,   330     Iop_Est5FRSqrt = 82140,
331     Iop_RoundF64toF64_NEAREST = 82141,   331     Iop_RoundF64toF64_NEAREST = 82141,
332     Iop_RoundF64toF64_NegINF = 82142,   332     Iop_RoundF64toF64_NegINF = 82142,
333     Iop_RoundF64toF64_PosINF = 82143,   333     Iop_RoundF64toF64_PosINF = 82143,
334     Iop_RoundF64toF64_ZERO = 82144,   334     Iop_RoundF64toF64_ZERO = 82144,
335     Iop_TruncF64asF32 = 82145,   335     Iop_TruncF64asF32 = 82145,
336     Iop_RoundF64toF32 = 82146,   336     Iop_RoundF64toF32 = 82146,
337     Iop_CalcFPRF = 82147,   337     Iop_CalcFPRF = 82147,
338     Iop_Add16x2 = 82148,   338     Iop_Add16x2 = 82148,
339     Iop_Sub16x2 = 82149,   339     Iop_Sub16x2 = 82149,
340     Iop_QAdd16Sx2 = 82150,   340     Iop_QAdd16Sx2 = 82150,
341     Iop_QAdd16Ux2 = 82151,   341     Iop_QAdd16Ux2 = 82151,
342     Iop_QSub16Sx2 = 82152,   342     Iop_QSub16Sx2 = 82152,
343     Iop_QSub16Ux2 = 82153,   343     Iop_QSub16Ux2 = 82153,
344     Iop_HAdd16Ux2 = 82154,   344     Iop_HAdd16Ux2 = 82154,
345     Iop_HAdd16Sx2 = 82155,   345     Iop_HAdd16Sx2 = 82155,
346     Iop_HSub16Ux2 = 82156,   346     Iop_HSub16Ux2 = 82156,
347     Iop_HSub16Sx2 = 82157,   347     Iop_HSub16Sx2 = 82157,
348     Iop_Add8x4 = 82158,   348     Iop_Add8x4 = 82158,
349     Iop_Sub8x4 = 82159,   349     Iop_Sub8x4 = 82159,
350     Iop_QAdd8Sx4 = 82160,   350     Iop_QAdd8Sx4 = 82160,
351     Iop_QAdd8Ux4 = 82161,   351     Iop_QAdd8Ux4 = 82161,
352     Iop_QSub8Sx4 = 82162,   352     Iop_QSub8Sx4 = 82162,
353     Iop_QSub8Ux4 = 82163,   353     Iop_QSub8Ux4 = 82163,
354     Iop_HAdd8Ux4 = 82164,   354     Iop_HAdd8Ux4 = 82164,
355     Iop_HAdd8Sx4 = 82165,   355     Iop_HAdd8Sx4 = 82165,
356     Iop_HSub8Ux4 = 82166,   356     Iop_HSub8Ux4 = 82166,
357     Iop_HSub8Sx4 = 82167,   357     Iop_HSub8Sx4 = 82167,
358     Iop_Sad8Ux4 = 82168,   358     Iop_Sad8Ux4 = 82168,
359     Iop_CmpNEZ16x2 = 82169,   359     Iop_CmpNEZ16x2 = 82169,
360     Iop_CmpNEZ8x4 = 82170,   360     Iop_CmpNEZ8x4 = 82170,
361     Iop_I32UtoFx2 = 82171,   361     Iop_I32UtoFx2 = 82171,
362     Iop_I32StoFx2 = 82172,   362     Iop_I32StoFx2 = 82172,
363     Iop_FtoI32Ux2_RZ = 82173,   363     Iop_FtoI32Ux2_RZ = 82173,
364     Iop_FtoI32Sx2_RZ = 82174,   364     Iop_FtoI32Sx2_RZ = 82174,
365     Iop_F32ToFixed32Ux2_RZ = 82175,   365     Iop_F32ToFixed32Ux2_RZ = 82175,
366     Iop_F32ToFixed32Sx2_RZ = 82176,   366     Iop_F32ToFixed32Sx2_RZ = 82176,
367     Iop_Fixed32UToF32x2_RN = 82177,   367     Iop_Fixed32UToF32x2_RN = 82177,
368     Iop_Fixed32SToF32x2_RN = 82178,   368     Iop_Fixed32SToF32x2_RN = 82178,
369     Iop_Max32Fx2 = 82179,   369     Iop_Max32Fx2 = 82179,
370     Iop_Min32Fx2 = 82180,   370     Iop_Min32Fx2 = 82180,
371     Iop_PwMax32Fx2 = 82181,   371     Iop_PwMax32Fx2 = 82181,
372     Iop_PwMin32Fx2 = 82182,   372     Iop_PwMin32Fx2 = 82182,
373     Iop_CmpEQ32Fx2 = 82183,   373     Iop_CmpEQ32Fx2 = 82183,
374     Iop_CmpGT32Fx2 = 82184,   374     Iop_CmpGT32Fx2 = 82184,
375     Iop_CmpGE32Fx2 = 82185,   375     Iop_CmpGE32Fx2 = 82185,
376     Iop_Recip32Fx2 = 82186,   376     Iop_Recip32Fx2 = 82186,
377     Iop_Recps32Fx2 = 82187,   377     Iop_Recps32Fx2 = 82187,
378     Iop_Rsqrte32Fx2 = 82188,   378     Iop_Rsqrte32Fx2 = 82188,
379     Iop_Rsqrts32Fx2 = 82189,   379     Iop_Rsqrts32Fx2 = 82189,
380     Iop_Neg32Fx2 = 82190,   380     Iop_Neg32Fx2 = 82190,
381     Iop_Abs32Fx2 = 82191,   381     Iop_Abs32Fx2 = 82191,
382     Iop_CmpNEZ8x8 = 82192,   382     Iop_CmpNEZ8x8 = 82192,
383     Iop_CmpNEZ16x4 = 82193,   383     Iop_CmpNEZ16x4 = 82193,
384     Iop_CmpNEZ32x2 = 82194,   384     Iop_CmpNEZ32x2 = 82194,
385     Iop_Add8x8 = 82195,   385     Iop_Add8x8 = 82195,
386     Iop_Add16x4 = 82196,   386     Iop_Add16x4 = 82196,
387     Iop_Add32x2 = 82197,   387     Iop_Add32x2 = 82197,
388     Iop_QAdd8Ux8 = 82198,   388     Iop_QAdd8Ux8 = 82198,
389     Iop_QAdd16Ux4 = 82199,   389     Iop_QAdd16Ux4 = 82199,
390     Iop_QAdd32Ux2 = 82200,   390     Iop_QAdd32Ux2 = 82200,
391     Iop_QAdd64Ux1 = 82201,   391     Iop_QAdd64Ux1 = 82201,
392     Iop_QAdd8Sx8 = 82202,   392     Iop_QAdd8Sx8 = 82202,
393     Iop_QAdd16Sx4 = 82203,   393     Iop_QAdd16Sx4 = 82203,
394     Iop_QAdd32Sx2 = 82204,   394     Iop_QAdd32Sx2 = 82204,
395     Iop_QAdd64Sx1 = 82205,   395     Iop_QAdd64Sx1 = 82205,
396     Iop_PwAdd8x8 = 82206,   396     Iop_PwAdd8x8 = 82206,
397     Iop_PwAdd16x4 = 82207,   397     Iop_PwAdd16x4 = 82207,
398     Iop_PwAdd32x2 = 82208,   398     Iop_PwAdd32x2 = 82208,
399     Iop_PwMax8Sx8 = 82209,   399     Iop_PwMax8Sx8 = 82209,
400     Iop_PwMax16Sx4 = 82210,   400     Iop_PwMax16Sx4 = 82210,
401     Iop_PwMax32Sx2 = 82211,   401     Iop_PwMax32Sx2 = 82211,
402     Iop_PwMax8Ux8 = 82212,   402     Iop_PwMax8Ux8 = 82212,
403     Iop_PwMax16Ux4 = 82213,   403     Iop_PwMax16Ux4 = 82213,
404     Iop_PwMax32Ux2 = 82214,   404     Iop_PwMax32Ux2 = 82214,
405     Iop_PwMin8Sx8 = 82215,   405     Iop_PwMin8Sx8 = 82215,
406     Iop_PwMin16Sx4 = 82216,   406     Iop_PwMin16Sx4 = 82216,
407     Iop_PwMin32Sx2 = 82217,   407     Iop_PwMin32Sx2 = 82217,
408     Iop_PwMin8Ux8 = 82218,   408     Iop_PwMin8Ux8 = 82218,
409     Iop_PwMin16Ux4 = 82219,   409     Iop_PwMin16Ux4 = 82219,
410     Iop_PwMin32Ux2 = 82220,   410     Iop_PwMin32Ux2 = 82220,
411     Iop_PwAddL8Ux8 = 82221,   411     Iop_PwAddL8Ux8 = 82221,
412     Iop_PwAddL16Ux4 = 82222,   412     Iop_PwAddL16Ux4 = 82222,
413     Iop_PwAddL32Ux2 = 82223,   413     Iop_PwAddL32Ux2 = 82223,
414     Iop_PwAddL8Sx8 = 82224,   414     Iop_PwAddL8Sx8 = 82224,
415     Iop_PwAddL16Sx4 = 82225,   415     Iop_PwAddL16Sx4 = 82225,
416     Iop_PwAddL32Sx2 = 82226,   416     Iop_PwAddL32Sx2 = 82226,
417     Iop_Sub8x8 = 82227,   417     Iop_Sub8x8 = 82227,
418     Iop_Sub16x4 = 82228,   418     Iop_Sub16x4 = 82228,
419     Iop_Sub32x2 = 82229,   419     Iop_Sub32x2 = 82229,
420     Iop_QSub8Ux8 = 82230,   420     Iop_QSub8Ux8 = 82230,
421     Iop_QSub16Ux4 = 82231,   421     Iop_QSub16Ux4 = 82231,
422     Iop_QSub32Ux2 = 82232,   422     Iop_QSub32Ux2 = 82232,
423     Iop_QSub64Ux1 = 82233,   423     Iop_QSub64Ux1 = 82233,
424     Iop_QSub8Sx8 = 82234,   424     Iop_QSub8Sx8 = 82234,
425     Iop_QSub16Sx4 = 82235,   425     Iop_QSub16Sx4 = 82235,
426     Iop_QSub32Sx2 = 82236,   426     Iop_QSub32Sx2 = 82236,
427     Iop_QSub64Sx1 = 82237,   427     Iop_QSub64Sx1 = 82237,
428     Iop_Abs8x8 = 82238,   428     Iop_Abs8x8 = 82238,
429     Iop_Abs16x4 = 82239,   429     Iop_Abs16x4 = 82239,
430     Iop_Abs32x2 = 82240,   430     Iop_Abs32x2 = 82240,
431     Iop_Mul8x8 = 82241,   431     Iop_Mul8x8 = 82241,
432     Iop_Mul16x4 = 82242,   432     Iop_Mul16x4 = 82242,
433     Iop_Mul32x2 = 82243,   433     Iop_Mul32x2 = 82243,
434     Iop_Mul32Fx2 = 82244,   434     Iop_Mul32Fx2 = 82244,
435     Iop_MulHi16Ux4 = 82245,   435     Iop_MulHi16Ux4 = 82245,
436     Iop_MulHi16Sx4 = 82246,   436     Iop_MulHi16Sx4 = 82246,
437     Iop_PolynomialMul8x8 = 82247,   437     Iop_PolynomialMul8x8 = 82247,
438     Iop_QDMulHi16Sx4 = 82248,   438     Iop_QDMulHi16Sx4 = 82248,
439     Iop_QDMulHi32Sx2 = 82249,   439     Iop_QDMulHi32Sx2 = 82249,
440     Iop_QRDMulHi16Sx4 = 82250,   440     Iop_QRDMulHi16Sx4 = 82250,
441     Iop_QRDMulHi32Sx2 = 82251,   441     Iop_QRDMulHi32Sx2 = 82251,
442     Iop_Avg8Ux8 = 82252,   442     Iop_Avg8Ux8 = 82252,
443     Iop_Avg16Ux4 = 82253,   443     Iop_Avg16Ux4 = 82253,
444     Iop_Max8Sx8 = 82254,   444     Iop_Max8Sx8 = 82254,
445     Iop_Max16Sx4 = 82255,   445     Iop_Max16Sx4 = 82255,
446     Iop_Max32Sx2 = 82256,   446     Iop_Max32Sx2 = 82256,
447     Iop_Max8Ux8 = 82257,   447     Iop_Max8Ux8 = 82257,
448     Iop_Max16Ux4 = 82258,   448     Iop_Max16Ux4 = 82258,
449     Iop_Max32Ux2 = 82259,   449     Iop_Max32Ux2 = 82259,
450     Iop_Min8Sx8 = 82260,   450     Iop_Min8Sx8 = 82260,
451     Iop_Min16Sx4 = 82261,   451     Iop_Min16Sx4 = 82261,
452     Iop_Min32Sx2 = 82262,   452     Iop_Min32Sx2 = 82262,
453     Iop_Min8Ux8 = 82263,   453     Iop_Min8Ux8 = 82263,
454     Iop_Min16Ux4 = 82264,   454     Iop_Min16Ux4 = 82264,
455     Iop_Min32Ux2 = 82265,   455     Iop_Min32Ux2 = 82265,
456     Iop_CmpEQ8x8 = 82266,   456     Iop_CmpEQ8x8 = 82266,
457     Iop_CmpEQ16x4 = 82267,   457     Iop_CmpEQ16x4 = 82267,
458     Iop_CmpEQ32x2 = 82268,   458     Iop_CmpEQ32x2 = 82268,
459     Iop_CmpGT8Ux8 = 82269,   459     Iop_CmpGT8Ux8 = 82269,
460     Iop_CmpGT16Ux4 = 82270,   460     Iop_CmpGT16Ux4 = 82270,
461     Iop_CmpGT32Ux2 = 82271,   461     Iop_CmpGT32Ux2 = 82271,
462     Iop_CmpGT8Sx8 = 82272,   462     Iop_CmpGT8Sx8 = 82272,
463     Iop_CmpGT16Sx4 = 82273,   463     Iop_CmpGT16Sx4 = 82273,
464     Iop_CmpGT32Sx2 = 82274,   464     Iop_CmpGT32Sx2 = 82274,
465     Iop_Cnt8x8 = 82275,   465     Iop_Cnt8x8 = 82275,
466     Iop_Clz8Sx8 = 82276,   466     Iop_Clz8Sx8 = 82276,
467     Iop_Clz16Sx4 = 82277,   467     Iop_Clz16Sx4 = 82277,
468     Iop_Clz32Sx2 = 82278,   468     Iop_Clz32Sx2 = 82278,
469     Iop_Cls8Sx8 = 82279,   469     Iop_Cls8Sx8 = 82279,
470     Iop_Cls16Sx4 = 82280,   470     Iop_Cls16Sx4 = 82280,
471     Iop_Cls32Sx2 = 82281,   471     Iop_Cls32Sx2 = 82281,
472     Iop_Shl8x8 = 82282,   472     Iop_Shl8x8 = 82282,
473     Iop_Shl16x4 = 82283,   473     Iop_Shl16x4 = 82283,
474     Iop_Shl32x2 = 82284,   474     Iop_Shl32x2 = 82284,
475     Iop_Shr8x8 = 82285,   475     Iop_Shr8x8 = 82285,
476     Iop_Shr16x4 = 82286,   476     Iop_Shr16x4 = 82286,
477     Iop_Shr32x2 = 82287,   477     Iop_Shr32x2 = 82287,
478     Iop_Sar8x8 = 82288,   478     Iop_Sar8x8 = 82288,
479     Iop_Sar16x4 = 82289,   479     Iop_Sar16x4 = 82289,
480     Iop_Sar32x2 = 82290,   480     Iop_Sar32x2 = 82290,
481     Iop_Sal8x8 = 82291,   481     Iop_Sal8x8 = 82291,
482     Iop_Sal16x4 = 82292,   482     Iop_Sal16x4 = 82292,
483     Iop_Sal32x2 = 82293,   483     Iop_Sal32x2 = 82293,
484     Iop_Sal64x1 = 82294,   484     Iop_Sal64x1 = 82294,
485     Iop_ShlN8x8 = 82295,   485     Iop_ShlN8x8 = 82295,
486     Iop_ShlN16x4 = 82296,   486     Iop_ShlN16x4 = 82296,
487     Iop_ShlN32x2 = 82297,   487     Iop_ShlN32x2 = 82297,
488     Iop_ShrN8x8 = 82298,   488     Iop_ShrN8x8 = 82298,
489     Iop_ShrN16x4 = 82299,   489     Iop_ShrN16x4 = 82299,
490     Iop_ShrN32x2 = 82300,   490     Iop_ShrN32x2 = 82300,
491     Iop_SarN8x8 = 82301,   491     Iop_SarN8x8 = 82301,
492     Iop_SarN16x4 = 82302,   492     Iop_SarN16x4 = 82302,
493     Iop_SarN32x2 = 82303,   493     Iop_SarN32x2 = 82303,
494     Iop_QShl8x8 = 82304,   494     Iop_QShl8x8 = 82304,
495     Iop_QShl16x4 = 82305,   495     Iop_QShl16x4 = 82305,
496     Iop_QShl32x2 = 82306,   496     Iop_QShl32x2 = 82306,
497     Iop_QShl64x1 = 82307,   497     Iop_QShl64x1 = 82307,
498     Iop_QSal8x8 = 82308,   498     Iop_QSal8x8 = 82308,
499     Iop_QSal16x4 = 82309,   499     Iop_QSal16x4 = 82309,
500     Iop_QSal32x2 = 82310,   500     Iop_QSal32x2 = 82310,
501     Iop_QSal64x1 = 82311,   501     Iop_QSal64x1 = 82311,
502     Iop_QShlN8Sx8 = 82312,   502     Iop_QShlN8Sx8 = 82312,
503     Iop_QShlN16Sx4 = 82313,   503     Iop_QShlN16Sx4 = 82313,
504     Iop_QShlN32Sx2 = 82314,   504     Iop_QShlN32Sx2 = 82314,
505     Iop_QShlN64Sx1 = 82315,   505     Iop_QShlN64Sx1 = 82315,
506     Iop_QShlN8x8 = 82316,   506     Iop_QShlN8x8 = 82316,
507     Iop_QShlN16x4 = 82317,   507     Iop_QShlN16x4 = 82317,
508     Iop_QShlN32x2 = 82318,   508     Iop_QShlN32x2 = 82318,
509     Iop_QShlN64x1 = 82319,   509     Iop_QShlN64x1 = 82319,
510     Iop_QSalN8x8 = 82320,   510     Iop_QSalN8x8 = 82320,
511     Iop_QSalN16x4 = 82321,   511     Iop_QSalN16x4 = 82321,
512     Iop_QSalN32x2 = 82322,   512     Iop_QSalN32x2 = 82322,
513     Iop_QSalN64x1 = 82323,   513     Iop_QSalN64x1 = 82323,
514     Iop_QNarrow16Ux4 = 82324,   514     Iop_QNarrow16Ux4 = 82324,
515     Iop_QNarrow16Sx4 = 82325,   515     Iop_QNarrow16Sx4 = 82325,
516     Iop_QNarrow32Sx2 = 82326,   516     Iop_QNarrow32Sx2 = 82326,
517     Iop_InterleaveHI8x8 = 82327,   517     Iop_InterleaveHI8x8 = 82327,
518     Iop_InterleaveHI16x4 = 82328,   518     Iop_InterleaveHI16x4 = 82328,
519     Iop_InterleaveHI32x2 = 82329,   519     Iop_InterleaveHI32x2 = 82329,
520     Iop_InterleaveLO8x8 = 82330,   520     Iop_InterleaveLO8x8 = 82330,
521     Iop_InterleaveLO16x4 = 82331,   521     Iop_InterleaveLO16x4 = 82331,
522     Iop_InterleaveLO32x2 = 82332,   522     Iop_InterleaveLO32x2 = 82332,
523     Iop_InterleaveOddLanes8x8 = 82333,   523     Iop_InterleaveOddLanes8x8 = 82333,
524     Iop_InterleaveEvenLanes8x8 = 82334,   524     Iop_InterleaveEvenLanes8x8 = 82334,
525     Iop_InterleaveOddLanes16x4 = 82335,   525     Iop_InterleaveOddLanes16x4 = 82335,
526     Iop_InterleaveEvenLanes16x4 = 82336,   526     Iop_InterleaveEvenLanes16x4 = 82336,
527     Iop_CatOddLanes8x8 = 82337,   527     Iop_CatOddLanes8x8 = 82337,
528     Iop_CatOddLanes16x4 = 82338,   528     Iop_CatOddLanes16x4 = 82338,
529     Iop_CatEvenLanes8x8 = 82339,   529     Iop_CatEvenLanes8x8 = 82339,
530     Iop_CatEvenLanes16x4 = 82340,   530     Iop_CatEvenLanes16x4 = 82340,
531     Iop_GetElem8x8 = 82341,   531     Iop_GetElem8x8 = 82341,
532     Iop_GetElem16x4 = 82342,   532     Iop_GetElem16x4 = 82342,
533     Iop_GetElem32x2 = 82343,   533     Iop_GetElem32x2 = 82343,
534     Iop_SetElem8x8 = 82344,   534     Iop_SetElem8x8 = 82344,
535     Iop_SetElem16x4 = 82345,   535     Iop_SetElem16x4 = 82345,
536     Iop_SetElem32x2 = 82346,   536     Iop_SetElem32x2 = 82346,
537     Iop_Dup8x8 = 82347,   537     Iop_Dup8x8 = 82347,
538     Iop_Dup16x4 = 82348,   538     Iop_Dup16x4 = 82348,
539     Iop_Dup32x2 = 82349,   539     Iop_Dup32x2 = 82349,
540     Iop_Extract64 = 82350,   540     Iop_Extract64 = 82350,
541     Iop_Reverse16_8x8 = 82351,   541     Iop_Reverse16_8x8 = 82351,
542     Iop_Reverse32_8x8 = 82352,   542     Iop_Reverse32_8x8 = 82352,
543     Iop_Reverse32_16x4 = 82353,   543     Iop_Reverse32_16x4 = 82353,
544     Iop_Reverse64_8x8 = 82354,   544     Iop_Reverse64_8x8 = 82354,
545     Iop_Reverse64_16x4 = 82355,   545     Iop_Reverse64_16x4 = 82355,
546     Iop_Reverse64_32x2 = 82356,   546     Iop_Reverse64_32x2 = 82356,
547     Iop_Perm8x8 = 82357,   547     Iop_Perm8x8 = 82357,
548     Iop_Recip32x2 = 82358,   548     Iop_Recip32x2 = 82358,
549     Iop_Rsqrte32x2 = 82359,   549     Iop_Rsqrte32x2 = 82359,
550     Iop_Add32Fx4 = 82360,   550     Iop_Add32Fx4 = 82360,
551     Iop_Sub32Fx4 = 82361,   551     Iop_Sub32Fx4 = 82361,
552     Iop_Mul32Fx4 = 82362,   552     Iop_Mul32Fx4 = 82362,
553     Iop_Div32Fx4 = 82363,   553     Iop_Div32Fx4 = 82363,
554     Iop_Max32Fx4 = 82364,   554     Iop_Max32Fx4 = 82364,
555     Iop_Min32Fx4 = 82365,   555     Iop_Min32Fx4 = 82365,
556     Iop_Add32Fx2 = 82366,   556     Iop_Add32Fx2 = 82366,
557     Iop_Sub32Fx2 = 82367,   557     Iop_Sub32Fx2 = 82367,
558     Iop_CmpEQ32Fx4 = 82368,   558     Iop_CmpEQ32Fx4 = 82368,
559     Iop_CmpLT32Fx4 = 82369,   559     Iop_CmpLT32Fx4 = 82369,
560     Iop_CmpLE32Fx4 = 82370,   560     Iop_CmpLE32Fx4 = 82370,
561     Iop_CmpUN32Fx4 = 82371,   561     Iop_CmpUN32Fx4 = 82371,
562     Iop_CmpGT32Fx4 = 82372,   562     Iop_CmpGT32Fx4 = 82372,
563     Iop_CmpGE32Fx4 = 82373,   563     Iop_CmpGE32Fx4 = 82373,
564     Iop_Abs32Fx4 = 82374,   564     Iop_Abs32Fx4 = 82374,
565     Iop_PwMax32Fx4 = 82375,   565     Iop_PwMax32Fx4 = 82375,
566     Iop_PwMin32Fx4 = 82376,   566     Iop_PwMin32Fx4 = 82376,
567     Iop_Sqrt32Fx4 = 82377,   567     Iop_Sqrt32Fx4 = 82377,
568     Iop_RSqrt32Fx4 = 82378,   568     Iop_RSqrt32Fx4 = 82378,
569     Iop_Neg32Fx4 = 82379,   569     Iop_Neg32Fx4 = 82379,
570     Iop_Recip32Fx4 = 82380,   570     Iop_Recip32Fx4 = 82380,
571     Iop_Recps32Fx4 = 82381,   571     Iop_Recps32Fx4 = 82381,
572     Iop_Rsqrte32Fx4 = 82382,   572     Iop_Rsqrte32Fx4 = 82382,
573     Iop_Rsqrts32Fx4 = 82383,   573     Iop_Rsqrts32Fx4 = 82383,
574     Iop_I32UtoFx4 = 82384,   574     Iop_I32UtoFx4 = 82384,
575     Iop_I32StoFx4 = 82385,   575     Iop_I32StoFx4 = 82385,
576     Iop_FtoI32Ux4_RZ = 82386,   576     Iop_FtoI32Ux4_RZ = 82386,
577     Iop_FtoI32Sx4_RZ = 82387,   577     Iop_FtoI32Sx4_RZ = 82387,
578     Iop_QFtoI32Ux4_RZ = 82388,   578     Iop_QFtoI32Ux4_RZ = 82388,
579     Iop_QFtoI32Sx4_RZ = 82389,   579     Iop_QFtoI32Sx4_RZ = 82389,
580     Iop_RoundF32x4_RM = 82390,   580     Iop_RoundF32x4_RM = 82390,
581     Iop_RoundF32x4_RP = 82391,   581     Iop_RoundF32x4_RP = 82391,
582     Iop_RoundF32x4_RN = 82392,   582     Iop_RoundF32x4_RN = 82392,
583     Iop_RoundF32x4_RZ = 82393,   583     Iop_RoundF32x4_RZ = 82393,
584     Iop_F32ToFixed32Ux4_RZ = 82394,   584     Iop_F32ToFixed32Ux4_RZ = 82394,
585     Iop_F32ToFixed32Sx4_RZ = 82395,   585     Iop_F32ToFixed32Sx4_RZ = 82395,
586     Iop_Fixed32UToF32x4_RN = 82396,   586     Iop_Fixed32UToF32x4_RN = 82396,
587     Iop_Fixed32SToF32x4_RN = 82397,   587     Iop_Fixed32SToF32x4_RN = 82397,
588     Iop_F32toF16x4 = 82398,   588     Iop_F32toF16x4 = 82398,
589     Iop_F16toF32x4 = 82399,   589     Iop_F16toF32x4 = 82399,
590     Iop_Add32F0x4 = 82400,   590     Iop_Add32F0x4 = 82400,
591     Iop_Sub32F0x4 = 82401,   591     Iop_Sub32F0x4 = 82401,
592     Iop_Mul32F0x4 = 82402,   592     Iop_Mul32F0x4 = 82402,
593     Iop_Div32F0x4 = 82403,   593     Iop_Div32F0x4 = 82403,
594     Iop_Max32F0x4 = 82404,   594     Iop_Max32F0x4 = 82404,
595     Iop_Min32F0x4 = 82405,   595     Iop_Min32F0x4 = 82405,
596     Iop_CmpEQ32F0x4 = 82406,   596     Iop_CmpEQ32F0x4 = 82406,
597     Iop_CmpLT32F0x4 = 82407,   597     Iop_CmpLT32F0x4 = 82407,
598     Iop_CmpLE32F0x4 = 82408,   598     Iop_CmpLE32F0x4 = 82408,
599     Iop_CmpUN32F0x4 = 82409,   599     Iop_CmpUN32F0x4 = 82409,
600     Iop_Recip32F0x4 = 82410,   600     Iop_Recip32F0x4 = 82410,
601     Iop_Sqrt32F0x4 = 82411,   601     Iop_Sqrt32F0x4 = 82411,
602     Iop_RSqrt32F0x4 = 82412,   602     Iop_RSqrt32F0x4 = 82412,
603     Iop_Add64Fx2 = 82413,   603     Iop_Add64Fx2 = 82413,
604     Iop_Sub64Fx2 = 82414,   604     Iop_Sub64Fx2 = 82414,
605     Iop_Mul64Fx2 = 82415,   605     Iop_Mul64Fx2 = 82415,
606     Iop_Div64Fx2 = 82416,   606     Iop_Div64Fx2 = 82416,
607     Iop_Max64Fx2 = 82417,   607     Iop_Max64Fx2 = 82417,
608     Iop_Min64Fx2 = 82418,   608     Iop_Min64Fx2 = 82418,
609     Iop_CmpEQ64Fx2 = 82419,   609     Iop_CmpEQ64Fx2 = 82419,
610     Iop_CmpLT64Fx2 = 82420,   610     Iop_CmpLT64Fx2 = 82420,
611     Iop_CmpLE64Fx2 = 82421,   611     Iop_CmpLE64Fx2 = 82421,
612     Iop_CmpUN64Fx2 = 82422,   612     Iop_CmpUN64Fx2 = 82422,
613     Iop_Recip64Fx2 = 82423,   613     Iop_Recip64Fx2 = 82423,
614     Iop_Sqrt64Fx2 = 82424,   614     Iop_Sqrt64Fx2 = 82424,
615     Iop_RSqrt64Fx2 = 82425,   615     Iop_RSqrt64Fx2 = 82425,
616     Iop_Add64F0x2 = 82426,   616     Iop_Add64F0x2 = 82426,
617     Iop_Sub64F0x2 = 82427,   617     Iop_Sub64F0x2 = 82427,
618     Iop_Mul64F0x2 = 82428,   618     Iop_Mul64F0x2 = 82428,
619     Iop_Div64F0x2 = 82429,   619     Iop_Div64F0x2 = 82429,
620     Iop_Max64F0x2 = 82430,   620     Iop_Max64F0x2 = 82430,
621     Iop_Min64F0x2 = 82431,   621     Iop_Min64F0x2 = 82431,
622     Iop_CmpEQ64F0x2 = 82432,   622     Iop_CmpEQ64F0x2 = 82432,
623     Iop_CmpLT64F0x2 = 82433,   623     Iop_CmpLT64F0x2 = 82433,
624     Iop_CmpLE64F0x2 = 82434,   624     Iop_CmpLE64F0x2 = 82434,
625     Iop_CmpUN64F0x2 = 82435,   625     Iop_CmpUN64F0x2 = 82435,
626     Iop_Recip64F0x2 = 82436,   626     Iop_Recip64F0x2 = 82436,
627     Iop_Sqrt64F0x2 = 82437,   627     Iop_Sqrt64F0x2 = 82437,
628     Iop_RSqrt64F0x2 = 82438,   628     Iop_RSqrt64F0x2 = 82438,
629     Iop_V128to64 = 82439,   629     Iop_V128to64 = 82439,
630     Iop_V128HIto64 = 82440,   630     Iop_V128HIto64 = 82440,
631     Iop_64HLtoV128 = 82441,   631     Iop_64HLtoV128 = 82441,
632     Iop_64UtoV128 = 82442,   632     Iop_64UtoV128 = 82442,
633     Iop_SetV128lo64 = 82443,   633     Iop_SetV128lo64 = 82443,
634     Iop_32UtoV128 = 82444,   634     Iop_32UtoV128 = 82444,
635     Iop_V128to32 = 82445,   635     Iop_V128to32 = 82445,
636     Iop_SetV128lo32 = 82446,   636     Iop_SetV128lo32 = 82446,
637     Iop_NotV128 = 82447,   637     Iop_NotV128 = 82447,
638     Iop_AndV128 = 82448,   638     Iop_AndV128 = 82448,
639     Iop_OrV128 = 82449,   639     Iop_OrV128 = 82449,
640     Iop_XorV128 = 82450,   640     Iop_XorV128 = 82450,
641     Iop_ShlV128 = 82451,   641     Iop_ShlV128 = 82451,
642     Iop_ShrV128 = 82452,   642     Iop_ShrV128 = 82452,
643     Iop_CmpNEZ8x16 = 82453,   643     Iop_CmpNEZ8x16 = 82453,
644     Iop_CmpNEZ16x8 = 82454,   644     Iop_CmpNEZ16x8 = 82454,
645     Iop_CmpNEZ32x4 = 82455,   645     Iop_CmpNEZ32x4 = 82455,
646     Iop_CmpNEZ64x2 = 82456,   646     Iop_CmpNEZ64x2 = 82456,
647     Iop_Add8x16 = 82457,   647     Iop_Add8x16 = 82457,
648     Iop_Add16x8 = 82458,   648     Iop_Add16x8 = 82458,
649     Iop_Add32x4 = 82459,   649     Iop_Add32x4 = 82459,
650     Iop_Add64x2 = 82460,   650     Iop_Add64x2 = 82460,
651     Iop_QAdd8Ux16 = 82461,   651     Iop_QAdd8Ux16 = 82461,
652     Iop_QAdd16Ux8 = 82462,   652     Iop_QAdd16Ux8 = 82462,
653     Iop_QAdd32Ux4 = 82463,   653     Iop_QAdd32Ux4 = 82463,
654     Iop_QAdd64Ux2 = 82464,   654     Iop_QAdd64Ux2 = 82464,
655     Iop_QAdd8Sx16 = 82465,   655     Iop_QAdd8Sx16 = 82465,
656     Iop_QAdd16Sx8 = 82466,   656     Iop_QAdd16Sx8 = 82466,
657     Iop_QAdd32Sx4 = 82467,   657     Iop_QAdd32Sx4 = 82467,
658     Iop_QAdd64Sx2 = 82468,   658     Iop_QAdd64Sx2 = 82468,
659     Iop_Sub8x16 = 82469,   659     Iop_Sub8x16 = 82469,
660     Iop_Sub16x8 = 82470,   660     Iop_Sub16x8 = 82470,
661     Iop_Sub32x4 = 82471,   661     Iop_Sub32x4 = 82471,
662     Iop_Sub64x2 = 82472,   662     Iop_Sub64x2 = 82472,
663     Iop_QSub8Ux16 = 82473,   663     Iop_QSub8Ux16 = 82473,
664     Iop_QSub16Ux8 = 82474,   664     Iop_QSub16Ux8 = 82474,
665     Iop_QSub32Ux4 = 82475,   665     Iop_QSub32Ux4 = 82475,
666     Iop_QSub64Ux2 = 82476,   666     Iop_QSub64Ux2 = 82476,
667     Iop_QSub8Sx16 = 82477,   667     Iop_QSub8Sx16 = 82477,
668     Iop_QSub16Sx8 = 82478,   668     Iop_QSub16Sx8 = 82478,
669     Iop_QSub32Sx4 = 82479,   669     Iop_QSub32Sx4 = 82479,
670     Iop_QSub64Sx2 = 82480,   670     Iop_QSub64Sx2 = 82480,
671     Iop_Mul8x16 = 82481,   671     Iop_Mul8x16 = 82481,
672     Iop_Mul16x8 = 82482,   672     Iop_Mul16x8 = 82482,
673     Iop_Mul32x4 = 82483,   673     Iop_Mul32x4 = 82483,
674     Iop_MulHi16Ux8 = 82484,   674     Iop_MulHi16Ux8 = 82484,
675     Iop_MulHi32Ux4 = 82485,   675     Iop_MulHi32Ux4 = 82485,
676     Iop_MulHi16Sx8 = 82486,   676     Iop_MulHi16Sx8 = 82486,
677     Iop_MulHi32Sx4 = 82487,   677     Iop_MulHi32Sx4 = 82487,
678     Iop_MullEven8Ux16 = 82488,   678     Iop_MullEven8Ux16 = 82488,
679     Iop_MullEven16Ux8 = 82489,   679     Iop_MullEven16Ux8 = 82489,
680     Iop_MullEven8Sx16 = 82490,   680     Iop_MullEven8Sx16 = 82490,
681     Iop_MullEven16Sx8 = 82491,   681     Iop_MullEven16Sx8 = 82491,
682     Iop_Mull8Ux8 = 82492,   682     Iop_Mull8Ux8 = 82492,
683     Iop_Mull8Sx8 = 82493,   683     Iop_Mull8Sx8 = 82493,
684     Iop_Mull16Ux4 = 82494,   684     Iop_Mull16Ux4 = 82494,
685     Iop_Mull16Sx4 = 82495,   685     Iop_Mull16Sx4 = 82495,
686     Iop_Mull32Ux2 = 82496,   686     Iop_Mull32Ux2 = 82496,
687     Iop_Mull32Sx2 = 82497,   687     Iop_Mull32Sx2 = 82497,
688     Iop_QDMulHi16Sx8 = 82498,   688     Iop_QDMulHi16Sx8 = 82498,
689     Iop_QDMulHi32Sx4 = 82499,   689     Iop_QDMulHi32Sx4 = 82499,
690     Iop_QRDMulHi16Sx8 = 82500,   690     Iop_QRDMulHi16Sx8 = 82500,
691     Iop_QRDMulHi32Sx4 = 82501,   691     Iop_QRDMulHi32Sx4 = 82501,
692     Iop_QDMulLong16Sx4 = 82502,   692     Iop_QDMulLong16Sx4 = 82502,
693     Iop_QDMulLong32Sx2 = 82503,   693     Iop_QDMulLong32Sx2 = 82503,
694     Iop_PolynomialMul8x16 = 82504,   694     Iop_PolynomialMul8x16 = 82504,
695     Iop_PolynomialMull8x8 = 82505,   695     Iop_PolynomialMull8x8 = 82505,
696     Iop_PwAdd8x16 = 82506,   696     Iop_PwAdd8x16 = 82506,
697     Iop_PwAdd16x8 = 82507,   697     Iop_PwAdd16x8 = 82507,
698     Iop_PwAdd32x4 = 82508,   698     Iop_PwAdd32x4 = 82508,
699     Iop_PwAdd32Fx2 = 82509,   699     Iop_PwAdd32Fx2 = 82509,
700     Iop_PwAddL8Ux16 = 82510,   700     Iop_PwAddL8Ux16 = 82510,
701     Iop_PwAddL16Ux8 = 82511,   701     Iop_PwAddL16Ux8 = 82511,
702     Iop_PwAddL32Ux4 = 82512,   702     Iop_PwAddL32Ux4 = 82512,
703     Iop_PwAddL8Sx16 = 82513,   703     Iop_PwAddL8Sx16 = 82513,
704     Iop_PwAddL16Sx8 = 82514,   704     Iop_PwAddL16Sx8 = 82514,
705     Iop_PwAddL32Sx4 = 82515,   705     Iop_PwAddL32Sx4 = 82515,
706     Iop_Abs8x16 = 82516,   706     Iop_Abs8x16 = 82516,
707     Iop_Abs16x8 = 82517,   707     Iop_Abs16x8 = 82517,
708     Iop_Abs32x4 = 82518,   708     Iop_Abs32x4 = 82518,
709     Iop_Avg8Ux16 = 82519,   709     Iop_Avg8Ux16 = 82519,
710     Iop_Avg16Ux8 = 82520,   710     Iop_Avg16Ux8 = 82520,
711     Iop_Avg32Ux4 = 82521,   711     Iop_Avg32Ux4 = 82521,
712     Iop_Avg8Sx16 = 82522,   712     Iop_Avg8Sx16 = 82522,
713     Iop_Avg16Sx8 = 82523,   713     Iop_Avg16Sx8 = 82523,
714     Iop_Avg32Sx4 = 82524,   714     Iop_Avg32Sx4 = 82524,
715     Iop_Max8Sx16 = 82525,   715     Iop_Max8Sx16 = 82525,
716     Iop_Max16Sx8 = 82526,   716     Iop_Max16Sx8 = 82526,
717     Iop_Max32Sx4 = 82527,   717     Iop_Max32Sx4 = 82527,
718     Iop_Max8Ux16 = 82528,   718     Iop_Max8Ux16 = 82528,
719     Iop_Max16Ux8 = 82529,   719     Iop_Max16Ux8 = 82529,
720     Iop_Max32Ux4 = 82530,   720     Iop_Max32Ux4 = 82530,
721     Iop_Min8Sx16 = 82531,   721     Iop_Min8Sx16 = 82531,
722     Iop_Min16Sx8 = 82532,   722     Iop_Min16Sx8 = 82532,
723     Iop_Min32Sx4 = 82533,   723     Iop_Min32Sx4 = 82533,
724     Iop_Min8Ux16 = 82534,   724     Iop_Min8Ux16 = 82534,
725     Iop_Min16Ux8 = 82535,   725     Iop_Min16Ux8 = 82535,
726     Iop_Min32Ux4 = 82536,   726     Iop_Min32Ux4 = 82536,
727     Iop_CmpEQ8x16 = 82537,   727     Iop_CmpEQ8x16 = 82537,
728     Iop_CmpEQ16x8 = 82538,   728     Iop_CmpEQ16x8 = 82538,
729     Iop_CmpEQ32x4 = 82539,   729     Iop_CmpEQ32x4 = 82539,
730     Iop_CmpGT8Sx16 = 82540,   730     Iop_CmpGT8Sx16 = 82540,
731     Iop_CmpGT16Sx8 = 82541,   731     Iop_CmpGT16Sx8 = 82541,
732     Iop_CmpGT32Sx4 = 82542,   732     Iop_CmpGT32Sx4 = 82542,
733     Iop_CmpGT64Sx2 = 82543,   733     Iop_CmpGT64Sx2 = 82543,
734     Iop_CmpGT8Ux16 = 82544,   734     Iop_CmpGT8Ux16 = 82544,
735     Iop_CmpGT16Ux8 = 82545,   735     Iop_CmpGT16Ux8 = 82545,
736     Iop_CmpGT32Ux4 = 82546,   736     Iop_CmpGT32Ux4 = 82546,
737     Iop_Cnt8x16 = 82547,   737     Iop_Cnt8x16 = 82547,
738     Iop_Clz8Sx16 = 82548,   738     Iop_Clz8Sx16 = 82548,
739     Iop_Clz16Sx8 = 82549,   739     Iop_Clz16Sx8 = 82549,
740     Iop_Clz32Sx4 = 82550,   740     Iop_Clz32Sx4 = 82550,
741     Iop_Cls8Sx16 = 82551,   741     Iop_Cls8Sx16 = 82551,
742     Iop_Cls16Sx8 = 82552,   742     Iop_Cls16Sx8 = 82552,
743     Iop_Cls32Sx4 = 82553,   743     Iop_Cls32Sx4 = 82553,
744     Iop_ShlN8x16 = 82554,   744     Iop_ShlN8x16 = 82554,
745     Iop_ShlN16x8 = 82555,   745     Iop_ShlN16x8 = 82555,
746     Iop_ShlN32x4 = 82556,   746     Iop_ShlN32x4 = 82556,
747     Iop_ShlN64x2 = 82557,   747     Iop_ShlN64x2 = 82557,
748     Iop_ShrN8x16 = 82558,   748     Iop_ShrN8x16 = 82558,
749     Iop_ShrN16x8 = 82559,   749     Iop_ShrN16x8 = 82559,
750     Iop_ShrN32x4 = 82560,   750     Iop_ShrN32x4 = 82560,
751     Iop_ShrN64x2 = 82561,   751     Iop_ShrN64x2 = 82561,
752     Iop_SarN8x16 = 82562,   752     Iop_SarN8x16 = 82562,
753     Iop_SarN16x8 = 82563,   753     Iop_SarN16x8 = 82563,
754     Iop_SarN32x4 = 82564,   754     Iop_SarN32x4 = 82564,
755     Iop_SarN64x2 = 82565,   755     Iop_SarN64x2 = 82565,
756     Iop_Shl8x16 = 82566,   756     Iop_Shl8x16 = 82566,
757     Iop_Shl16x8 = 82567,   757     Iop_Shl16x8 = 82567,
758     Iop_Shl32x4 = 82568,   758     Iop_Shl32x4 = 82568,
759     Iop_Shl64x2 = 82569,   759     Iop_Shl64x2 = 82569,
760     Iop_Shr8x16 = 82570,   760     Iop_Shr8x16 = 82570,
761     Iop_Shr16x8 = 82571,   761     Iop_Shr16x8 = 82571,
762     Iop_Shr32x4 = 82572,   762     Iop_Shr32x4 = 82572,
763     Iop_Shr64x2 = 82573,   763     Iop_Shr64x2 = 82573,
764     Iop_Sar8x16 = 82574,   764     Iop_Sar8x16 = 82574,
765     Iop_Sar16x8 = 82575,   765     Iop_Sar16x8 = 82575,
766     Iop_Sar32x4 = 82576,   766     Iop_Sar32x4 = 82576,
767     Iop_Sar64x2 = 82577,   767     Iop_Sar64x2 = 82577,
768     Iop_Sal8x16 = 82578,   768     Iop_Sal8x16 = 82578,
769     Iop_Sal16x8 = 82579,   769     Iop_Sal16x8 = 82579,
770     Iop_Sal32x4 = 82580,   770     Iop_Sal32x4 = 82580,
771     Iop_Sal64x2 = 82581,   771     Iop_Sal64x2 = 82581,
772     Iop_Rol8x16 = 82582,   772     Iop_Rol8x16 = 82582,
773     Iop_Rol16x8 = 82583,   773     Iop_Rol16x8 = 82583,
774     Iop_Rol32x4 = 82584,   774     Iop_Rol32x4 = 82584,
775     Iop_QShl8x16 = 82585,   775     Iop_QShl8x16 = 82585,
776     Iop_QShl16x8 = 82586,   776     Iop_QShl16x8 = 82586,
777     Iop_QShl32x4 = 82587,   777     Iop_QShl32x4 = 82587,
778     Iop_QShl64x2 = 82588,   778     Iop_QShl64x2 = 82588,
779     Iop_QSal8x16 = 82589,   779     Iop_QSal8x16 = 82589,
780     Iop_QSal16x8 = 82590,   780     Iop_QSal16x8 = 82590,
781     Iop_QSal32x4 = 82591,   781     Iop_QSal32x4 = 82591,
782     Iop_QSal64x2 = 82592,   782     Iop_QSal64x2 = 82592,
783     Iop_QShlN8Sx16 = 82593,   783     Iop_QShlN8Sx16 = 82593,
784     Iop_QShlN16Sx8 = 82594,   784     Iop_QShlN16Sx8 = 82594,
785     Iop_QShlN32Sx4 = 82595,   785     Iop_QShlN32Sx4 = 82595,
786     Iop_QShlN64Sx2 = 82596,   786     Iop_QShlN64Sx2 = 82596,
787     Iop_QShlN8x16 = 82597,   787     Iop_QShlN8x16 = 82597,
788     Iop_QShlN16x8 = 82598,   788     Iop_QShlN16x8 = 82598,
789     Iop_QShlN32x4 = 82599,   789     Iop_QShlN32x4 = 82599,
790     Iop_QShlN64x2 = 82600,   790     Iop_QShlN64x2 = 82600,
791     Iop_QSalN8x16 = 82601,   791     Iop_QSalN8x16 = 82601,
792     Iop_QSalN16x8 = 82602,   792     Iop_QSalN16x8 = 82602,
793     Iop_QSalN32x4 = 82603,   793     Iop_QSalN32x4 = 82603,
794     Iop_QSalN64x2 = 82604,   794     Iop_QSalN64x2 = 82604,
795     Iop_QNarrow16Ux8 = 82605,   795     Iop_QNarrow16Ux8 = 82605,
796     Iop_QNarrow32Ux4 = 82606,   796     Iop_QNarrow32Ux4 = 82606,
797     Iop_QNarrow16Sx8 = 82607,   797     Iop_QNarrow16Sx8 = 82607,
798     Iop_QNarrow32Sx4 = 82608,   798     Iop_QNarrow32Sx4 = 82608,
799     Iop_Narrow16x8 = 82609,   799     Iop_Narrow16x8 = 82609,
800     Iop_Narrow32x4 = 82610,   800     Iop_Narrow32x4 = 82610,
801     Iop_Shorten16x8 = 82611,   801     Iop_Shorten16x8 = 82611,
802     Iop_Shorten32x4 = 82612,   802     Iop_Shorten32x4 = 82612,
803     Iop_Shorten64x2 = 82613,   803     Iop_Shorten64x2 = 82613,
804     Iop_QShortenS16Sx8 = 82614,   804     Iop_QShortenS16Sx8 = 82614,
805     Iop_QShortenS32Sx4 = 82615,   805     Iop_QShortenS32Sx4 = 82615,
806     Iop_QShortenS64Sx2 = 82616,   806     Iop_QShortenS64Sx2 = 82616,
807     Iop_QShortenU16Sx8 = 82617,   807     Iop_QShortenU16Sx8 = 82617,
808     Iop_QShortenU32Sx4 = 82618,   808     Iop_QShortenU32Sx4 = 82618,
809     Iop_QShortenU64Sx2 = 82619,   809     Iop_QShortenU64Sx2 = 82619,
810     Iop_QShortenU16Ux8 = 82620,   810     Iop_QShortenU16Ux8 = 82620,
811     Iop_QShortenU32Ux4 = 82621,   811     Iop_QShortenU32Ux4 = 82621,
812     Iop_QShortenU64Ux2 = 82622,   812     Iop_QShortenU64Ux2 = 82622,
813     Iop_Longen8Ux8 = 82623,   813     Iop_Longen8Ux8 = 82623,
814     Iop_Longen16Ux4 = 82624,   814     Iop_Longen16Ux4 = 82624,
815     Iop_Longen32Ux2 = 82625,   815     Iop_Longen32Ux2 = 82625,
816     Iop_Longen8Sx8 = 82626,   816     Iop_Longen8Sx8 = 82626,
817     Iop_Longen16Sx4 = 82627,   817     Iop_Longen16Sx4 = 82627,
818     Iop_Longen32Sx2 = 82628,   818     Iop_Longen32Sx2 = 82628,
819     Iop_InterleaveHI8x16 = 82629,   819     Iop_InterleaveHI8x16 = 82629,
820     Iop_InterleaveHI16x8 = 82630,   820     Iop_InterleaveHI16x8 = 82630,
821     Iop_InterleaveHI32x4 = 82631,   821     Iop_InterleaveHI32x4 = 82631,
822     Iop_InterleaveHI64x2 = 82632,   822     Iop_InterleaveHI64x2 = 82632,
823     Iop_InterleaveLO8x16 = 82633,   823     Iop_InterleaveLO8x16 = 82633,
824     Iop_InterleaveLO16x8 = 82634,   824     Iop_InterleaveLO16x8 = 82634,
825     Iop_InterleaveLO32x4 = 82635,   825     Iop_InterleaveLO32x4 = 82635,
826     Iop_InterleaveLO64x2 = 82636,   826     Iop_InterleaveLO64x2 = 82636,
827     Iop_InterleaveOddLanes8x16 = 82637,   827     Iop_InterleaveOddLanes8x16 = 82637,
828     Iop_InterleaveEvenLanes8x16 = 82638,   828     Iop_InterleaveEvenLanes8x16 = 82638,
829     Iop_InterleaveOddLanes16x8 = 82639,   829     Iop_InterleaveOddLanes16x8 = 82639,
830     Iop_InterleaveEvenLanes16x8 = 82640,   830     Iop_InterleaveEvenLanes16x8 = 82640,
831     Iop_InterleaveOddLanes32x4 = 82641,   831     Iop_InterleaveOddLanes32x4 = 82641,
832     Iop_InterleaveEvenLanes32x4 = 82642,   832     Iop_InterleaveEvenLanes32x4 = 82642,
833     Iop_CatOddLanes8x16 = 82643,   833     Iop_CatOddLanes8x16 = 82643,
834     Iop_CatOddLanes16x8 = 82644,   834     Iop_CatOddLanes16x8 = 82644,
835     Iop_CatOddLanes32x4 = 82645,   835     Iop_CatOddLanes32x4 = 82645,
836     Iop_CatEvenLanes8x16 = 82646,   836     Iop_CatEvenLanes8x16 = 82646,
837     Iop_CatEvenLanes16x8 = 82647,   837     Iop_CatEvenLanes16x8 = 82647,
838     Iop_CatEvenLanes32x4 = 82648,   838     Iop_CatEvenLanes32x4 = 82648,
839     Iop_GetElem8x16 = 82649,   839     Iop_GetElem8x16 = 82649,
840     Iop_GetElem16x8 = 82650,   840     Iop_GetElem16x8 = 82650,
841     Iop_GetElem32x4 = 82651,   841     Iop_GetElem32x4 = 82651,
842     Iop_GetElem64x2 = 82652,   842     Iop_GetElem64x2 = 82652,
843     Iop_Dup8x16 = 82653,   843     Iop_Dup8x16 = 82653,
844     Iop_Dup16x8 = 82654,   844     Iop_Dup16x8 = 82654,
845     Iop_Dup32x4 = 82655,   845     Iop_Dup32x4 = 82655,
846     Iop_ExtractV128 = 82656,   846     Iop_ExtractV128 = 82656,
847     Iop_Reverse16_8x16 = 82657,   847     Iop_Reverse16_8x16 = 82657,
848     Iop_Reverse32_8x16 = 82658,   848     Iop_Reverse32_8x16 = 82658,
849     Iop_Reverse32_16x8 = 82659,   849     Iop_Reverse32_16x8 = 82659,
850     Iop_Reverse64_8x16 = 82660,   850     Iop_Reverse64_8x16 = 82660,
851     Iop_Reverse64_16x8 = 82661,   851     Iop_Reverse64_16x8 = 82661,
852     Iop_Reverse64_32x4 = 82662,   852     Iop_Reverse64_32x4 = 82662,
853     Iop_Perm8x16 = 82663,   853     Iop_Perm8x16 = 82663,
854     Iop_Recip32x4 = 82664,   854     Iop_Recip32x4 = 82664,
855     Iop_Rsqrte32x4 = 82665   855     Iop_Rsqrte32x4 = 82665
856 } ;   856 } ;
857 typedef enum __anonenum_IROp_10 IROp;   857 typedef enum __anonenum_IROp_10 IROp;
858 enum __anonenum_IRRoundingMode_11 {   858 enum __anonenum_IRRoundingMode_11 {
859     Irrm_NEAREST = 0,   859     Irrm_NEAREST = 0,
860     Irrm_NegINF = 1,   860     Irrm_NegINF = 1,
861     Irrm_PosINF = 2,   861     Irrm_PosINF = 2,
862     Irrm_ZERO = 3   862     Irrm_ZERO = 3
863 } ;   863 } ;
864 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;   864 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;
865 enum __anonenum_IRCmpF64Result_12 {   865 enum __anonenum_IRCmpF64Result_12 {
866     Ircr_UN = 69,   866     Ircr_UN = 69,
867     Ircr_LT = 1,   867     Ircr_LT = 1,
868     Ircr_GT = 0,   868     Ircr_GT = 0,
869     Ircr_EQ = 64   869     Ircr_EQ = 64
870 } ;   870 } ;
871 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;   871 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;
872 typedef IRCmpF64Result IRCmpF32Result;   872 typedef IRCmpF64Result IRCmpF32Result;
873 typedef IRCmpF64Result IRCmpF128Result;   873 typedef IRCmpF64Result IRCmpF128Result;
874 enum __anonenum_IRExprTag_13 {   874 enum __anonenum_IRExprTag_13 {
875     Iex_Binder = 86016,   875     Iex_Binder = 86016,
876     Iex_Get = 86017,   876     Iex_Get = 86017,
877     Iex_GetI = 86018,   877     Iex_GetI = 86018,
878     Iex_RdTmp = 86019,   878     Iex_RdTmp = 86019,
879     Iex_Qop = 86020,   879     Iex_Qop = 86020,
880     Iex_Triop = 86021,   880     Iex_Triop = 86021,
881     Iex_Binop = 86022,   881     Iex_Binop = 86022,
882     Iex_Unop = 86023,   882     Iex_Unop = 86023,
883     Iex_Load = 86024,   883     Iex_Load = 86024,
884     Iex_Const = 86025,   884     Iex_Const = 86025,
885     Iex_Mux0X = 86026,   885     Iex_Mux0X = 86026,
886     Iex_CCall = 86027   886     Iex_CCall = 86027
887 } ;   887 } ;
888 typedef enum __anonenum_IRExprTag_13 IRExprTag;   888 typedef enum __anonenum_IRExprTag_13 IRExprTag;
889 struct _IRExpr;   889 struct _IRExpr;
890 typedef struct _IRExpr IRExpr;   890 typedef struct _IRExpr IRExpr;
891 struct __anonstruct_Binder_15 {   891 struct __anonstruct_Binder_15 {
892    Int binder ;   892    Int binder ;
893 };   893 };
894 struct __anonstruct_Get_16 {   894 struct __anonstruct_Get_16 {
895    Int offset ;   895    Int offset ;
896    IRType ty ;   896    IRType ty ;
897 };   897 };
898 struct __anonstruct_GetI_17 {   898 struct __anonstruct_GetI_17 {
899    IRRegArray *descr ;   899    IRRegArray *descr ;
900    IRExpr *ix ;   900    IRExpr *ix ;
901    Int bias ;   901    Int bias ;
902 };   902 };
903 struct __anonstruct_RdTmp_18 {   903 struct __anonstruct_RdTmp_18 {
904    IRTemp tmp ;   904    IRTemp tmp ;
905 };   905 };
906 struct __anonstruct_Qop_19 {   906 struct __anonstruct_Qop_19 {
907    IROp op ;   907    IROp op ;
908    IRExpr *arg1 ;   908    IRExpr *arg1 ;
909    IRExpr *arg2 ;   909    IRExpr *arg2 ;
910    IRExpr *arg3 ;   910    IRExpr *arg3 ;
911    IRExpr *arg4 ;   911    IRExpr *arg4 ;
912 };   912 };
913 struct __anonstruct_Triop_20 {   913 struct __anonstruct_Triop_20 {
914    IROp op ;   914    IROp op ;
915    IRExpr *arg1 ;   915    IRExpr *arg1 ;
916    IRExpr *arg2 ;   916    IRExpr *arg2 ;
917    IRExpr *arg3 ;   917    IRExpr *arg3 ;
918 };   918 };
919 struct __anonstruct_Binop_21 {   919 struct __anonstruct_Binop_21 {
920    IROp op ;   920    IROp op ;
921    IRExpr *arg1 ;   921    IRExpr *arg1 ;
922    IRExpr *arg2 ;   922    IRExpr *arg2 ;
923 };   923 };
924 struct __anonstruct_Unop_22 {   924 struct __anonstruct_Unop_22 {
925    IROp op ;   925    IROp op ;
926    IRExpr *arg ;   926    IRExpr *arg ;
927 };   927 };
928 struct __anonstruct_Load_23 {   928 struct __anonstruct_Load_23 {
929    IREndness end ;   929    IREndness end ;
930    IRType ty ;   930    IRType ty ;
931    IRExpr *addr ;   931    IRExpr *addr ;
932 };   932 };
933 struct __anonstruct_Const_24 {   933 struct __anonstruct_Const_24 {
934    IRConst *con ;   934    IRConst *con ;
935 };   935 };
936 struct __anonstruct_CCall_25 {   936 struct __anonstruct_CCall_25 {
937    IRCallee *cee ;   937    IRCallee *cee ;
938    IRType retty ;   938    IRType retty ;
939    IRExpr **args ;   939    IRExpr **args ;
940 };   940 };
941 struct __anonstruct_Mux0X_26 {   941 struct __anonstruct_Mux0X_26 {
942    IRExpr *cond ;   942    IRExpr *cond ;
943    IRExpr *expr0 ;   943    IRExpr *expr0 ;
944    IRExpr *exprX ;   944    IRExpr *exprX ;
945 };   945 };
946 union __anonunion_Iex_14 {   946 union __anonunion_Iex_14 {
947    struct __anonstruct_Binder_15 Binder ;   947    struct __anonstruct_Binder_15 Binder ;
948    struct __anonstruct_Get_16 Get ;   948    struct __anonstruct_Get_16 Get ;
949    struct __anonstruct_GetI_17 GetI ;   949    struct __anonstruct_GetI_17 GetI ;
950    struct __anonstruct_RdTmp_18 RdTmp ;   950    struct __anonstruct_RdTmp_18 RdTmp ;
951    struct __anonstruct_Qop_19 Qop ;   951    struct __anonstruct_Qop_19 Qop ;
952    struct __anonstruct_Triop_20 Triop ;   952    struct __anonstruct_Triop_20 Triop ;
953    struct __anonstruct_Binop_21 Binop ;   953    struct __anonstruct_Binop_21 Binop ;
954    struct __anonstruct_Unop_22 Unop ;   954    struct __anonstruct_Unop_22 Unop ;
955    struct __anonstruct_Load_23 Load ;   955    struct __anonstruct_Load_23 Load ;
956    struct __anonstruct_Const_24 Const ;   956    struct __anonstruct_Const_24 Const ;
957    struct __anonstruct_CCall_25 CCall ;   957    struct __anonstruct_CCall_25 CCall ;
958    struct __anonstruct_Mux0X_26 Mux0X ;   958    struct __anonstruct_Mux0X_26 Mux0X ;
959 };   959 };
960 struct _IRExpr {   960 struct _IRExpr {
961    IRExprTag tag ;   961    IRExprTag tag ;
962    union __anonunion_Iex_14 Iex ;   962    union __anonunion_Iex_14 Iex ;
963 };   963 };
964 enum __anonenum_IRJumpKind_27 {   964 enum __anonenum_IRJumpKind_27 {
965     Ijk_Boring = 90112,   965     Ijk_Boring = 90112,
966     Ijk_Call = 90113,   966     Ijk_Call = 90113,
967     Ijk_Ret = 90114,   967     Ijk_Ret = 90114,
968     Ijk_ClientReq = 90115,   968     Ijk_ClientReq = 90115,
969     Ijk_Yield = 90116,   969     Ijk_Yield = 90116,
970     Ijk_EmWarn = 90117,   970     Ijk_EmWarn = 90117,
971     Ijk_EmFail = 90118,   971     Ijk_EmFail = 90118,
972     Ijk_NoDecode = 90119,   972     Ijk_NoDecode = 90119,
973     Ijk_MapFail = 90120,   973     Ijk_MapFail = 90120,
974     Ijk_TInval = 90121,   974     Ijk_TInval = 90121,
975     Ijk_NoRedir = 90122,   975     Ijk_NoRedir = 90122,
976     Ijk_SigTRAP = 90123,   976     Ijk_SigTRAP = 90123,
977     Ijk_SigSEGV = 90124,   977     Ijk_SigSEGV = 90124,
978     Ijk_SigBUS = 90125,   978     Ijk_SigBUS = 90125,
979     Ijk_Sys_syscall = 90126,   979     Ijk_Sys_syscall = 90126,
980     Ijk_Sys_int32 = 90127,   980     Ijk_Sys_int32 = 90127,
981     Ijk_Sys_int128 = 90128,   981     Ijk_Sys_int128 = 90128,
982     Ijk_Sys_int129 = 90129,   982     Ijk_Sys_int129 = 90129,
983     Ijk_Sys_int130 = 90130,   983     Ijk_Sys_int130 = 90130,
984     Ijk_Sys_sysenter = 90131   984     Ijk_Sys_sysenter = 90131
985 } ;   985 } ;
986 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;   986 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;
987 enum __anonenum_IREffect_28 {   987 enum __anonenum_IREffect_28 {
988     Ifx_None = 94208,   988     Ifx_None = 94208,
989     Ifx_Read = 94209,   989     Ifx_Read = 94209,
990     Ifx_Write = 94210,   990     Ifx_Write = 94210,
991     Ifx_Modify = 94211   991     Ifx_Modify = 94211
992 } ;   992 } ;
993 typedef enum __anonenum_IREffect_28 IREffect;   993 typedef enum __anonenum_IREffect_28 IREffect;
994 struct __anonstruct_fxState_30 {   994 struct __anonstruct_fxState_30 {
995    IREffect fx ;   995    IREffect fx ;
996    Int offset ;   996    Int offset ;
997    Int size ;   997    Int size ;
998 };   998 };
999 struct __anonstruct_IRDirty_29 {   999 struct __anonstruct_IRDirty_29 {
1000    IRCallee *cee ;   1000    IRCallee *cee ;
1001    IRExpr *guard ;   1001    IRExpr *guard ;
1002    IRExpr **args ;   1002    IRExpr **args ;
1003    IRTemp tmp ;   1003    IRTemp tmp ;
1004    IREffect mFx ;   1004    IREffect mFx ;
1005    IRExpr *mAddr ;   1005    IRExpr *mAddr ;
1006    Int mSize ;   1006    Int mSize ;
1007    Bool needsBBP ;   1007    Bool needsBBP ;
1008    Int nFxState ;   1008    Int nFxState ;
1009    struct __anonstruct_fxState_30 fxState[7] ;   1009    struct __anonstruct_fxState_30 fxState[7] ;
1010 };   1010 };
1011 typedef struct __anonstruct_IRDirty_29 IRDirty;   1011 typedef struct __anonstruct_IRDirty_29 IRDirty;
1012 enum __anonenum_IRMBusEvent_31 {   1012 enum __anonenum_IRMBusEvent_31 {
1013     Imbe_Fence = 98304   1013     Imbe_Fence = 98304
1014 } ;   1014 } ;
1015 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;   1015 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;
1016 struct __anonstruct_IRCAS_32 {   1016 struct __anonstruct_IRCAS_32 {
1017    IRTemp oldHi ;   1017    IRTemp oldHi ;
1018    IRTemp oldLo ;   1018    IRTemp oldLo ;
1019    IREndness end ;   1019    IREndness end ;
1020    IRExpr *addr ;   1020    IRExpr *addr ;
1021    IRExpr *expdHi ;   1021    IRExpr *expdHi ;
1022    IRExpr *expdLo ;   1022    IRExpr *expdLo ;
1023    IRExpr *dataHi ;   1023    IRExpr *dataHi ;
1024    IRExpr *dataLo ;   1024    IRExpr *dataLo ;
1025 };   1025 };
1026 typedef struct __anonstruct_IRCAS_32 IRCAS;   1026 typedef struct __anonstruct_IRCAS_32 IRCAS;
1027 enum __anonenum_IRStmtTag_33 {   1027 enum __anonenum_IRStmtTag_33 {
1028     Ist_NoOp = 102400,   1028     Ist_NoOp = 102400,
1029     Ist_IMark = 102401,   1029     Ist_IMark = 102401,
1030     Ist_AbiHint = 102402,   1030     Ist_AbiHint = 102402,
1031     Ist_Put = 102403,   1031     Ist_Put = 102403,
1032     Ist_PutI = 102404,   1032     Ist_PutI = 102404,
1033     Ist_WrTmp = 102405,   1033     Ist_WrTmp = 102405,
1034     Ist_Store = 102406,   1034     Ist_Store = 102406,
1035     Ist_CAS = 102407,   1035     Ist_CAS = 102407,
1036     Ist_LLSC = 102408,   1036     Ist_LLSC = 102408,
1037     Ist_Dirty = 102409,   1037     Ist_Dirty = 102409,
1038     Ist_MBE = 102410,   1038     Ist_MBE = 102410,
1039     Ist_Exit = 102411   1039     Ist_Exit = 102411
1040 } ;   1040 } ;
1041 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;   1041 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;
1042 struct __anonstruct_NoOp_35 {   1042 struct __anonstruct_NoOp_35 {
1043     1043  
1044 };   1044 };
1045 struct __anonstruct_IMark_36 {   1045 struct __anonstruct_IMark_36 {
1046    Addr64 addr ;   1046    Addr64 addr ;
1047    Int len ;   1047    Int len ;
1048 };   1048 };
1049 struct __anonstruct_AbiHint_37 {   1049 struct __anonstruct_AbiHint_37 {
1050    IRExpr *base ;   1050    IRExpr *base ;
1051    Int len ;   1051    Int len ;
1052    IRExpr *nia ;   1052    IRExpr *nia ;
1053 };   1053 };
1054 struct __anonstruct_Put_38 {   1054 struct __anonstruct_Put_38 {
1055    Int offset ;   1055    Int offset ;
1056    IRExpr *data ;   1056    IRExpr *data ;
1057 };   1057 };
1058 struct __anonstruct_PutI_39 {   1058 struct __anonstruct_PutI_39 {
1059    IRRegArray *descr ;   1059    IRRegArray *descr ;
1060    IRExpr *ix ;   1060    IRExpr *ix ;
1061    Int bias ;   1061    Int bias ;
1062    IRExpr *data ;   1062    IRExpr *data ;
1063 };   1063 };
1064 struct __anonstruct_WrTmp_40 {   1064 struct __anonstruct_WrTmp_40 {
1065    IRTemp tmp ;   1065    IRTemp tmp ;
1066    IRExpr *data ;   1066    IRExpr *data ;
1067 };   1067 };
1068 struct __anonstruct_Store_41 {   1068 struct __anonstruct_Store_41 {
1069    IREndness end ;   1069    IREndness end ;
1070    IRExpr *addr ;   1070    IRExpr *addr ;
1071    IRExpr *data ;   1071    IRExpr *data ;
1072 };   1072 };
1073 struct __anonstruct_CAS_42 {   1073 struct __anonstruct_CAS_42 {
1074    IRCAS *details ;   1074    IRCAS *details ;
1075 };   1075 };
1076 struct __anonstruct_LLSC_43 {   1076 struct __anonstruct_LLSC_43 {
1077    IREndness end ;   1077    IREndness end ;
1078    IRTemp result ;   1078    IRTemp result ;
1079    IRExpr *addr ;   1079    IRExpr *addr ;
1080    IRExpr *storedata ;   1080    IRExpr *storedata ;
1081 };   1081 };
1082 struct __anonstruct_Dirty_44 {   1082 struct __anonstruct_Dirty_44 {
1083    IRDirty *details ;   1083    IRDirty *details ;
1084 };   1084 };
1085 struct __anonstruct_MBE_45 {   1085 struct __anonstruct_MBE_45 {
1086    IRMBusEvent event ;   1086    IRMBusEvent event ;
1087 };   1087 };
1088 struct __anonstruct_Exit_46 {   1088 struct __anonstruct_Exit_46 {
1089    IRExpr *guard ;   1089    IRExpr *guard ;
1090    IRJumpKind jk ;   1090    IRJumpKind jk ;
1091    IRConst *dst ;   1091    IRConst *dst ;
1092 };   1092 };
1093 union __anonunion_Ist_34 {   1093 union __anonunion_Ist_34 {
1094    struct __anonstruct_NoOp_35 NoOp ;   1094    struct __anonstruct_NoOp_35 NoOp ;
1095    struct __anonstruct_IMark_36 IMark ;   1095    struct __anonstruct_IMark_36 IMark ;
1096    struct __anonstruct_AbiHint_37 AbiHint ;   1096    struct __anonstruct_AbiHint_37 AbiHint ;
1097    struct __anonstruct_Put_38 Put ;   1097    struct __anonstruct_Put_38 Put ;
1098    struct __anonstruct_PutI_39 PutI ;   1098    struct __anonstruct_PutI_39 PutI ;
1099    struct __anonstruct_WrTmp_40 WrTmp ;   1099    struct __anonstruct_WrTmp_40 WrTmp ;
1100    struct __anonstruct_Store_41 Store ;   1100    struct __anonstruct_Store_41 Store ;
1101    struct __anonstruct_CAS_42 CAS ;   1101    struct __anonstruct_CAS_42 CAS ;
1102    struct __anonstruct_LLSC_43 LLSC ;   1102    struct __anonstruct_LLSC_43 LLSC ;
1103    struct __anonstruct_Dirty_44 Dirty ;   1103    struct __anonstruct_Dirty_44 Dirty ;
1104    struct __anonstruct_MBE_45 MBE ;   1104    struct __anonstruct_MBE_45 MBE ;
1105    struct __anonstruct_Exit_46 Exit ;   1105    struct __anonstruct_Exit_46 Exit ;
1106 };   1106 };
1107 struct _IRStmt {   1107 struct _IRStmt {
1108    IRStmtTag tag ;   1108    IRStmtTag tag ;
1109    union __anonunion_Ist_34 Ist ;   1109    union __anonunion_Ist_34 Ist ;
1110 };   1110 };
1111 typedef struct _IRStmt IRStmt;   1111 typedef struct _IRStmt IRStmt;
1112 struct __anonstruct_IRTypeEnv_47 {   1112 struct __anonstruct_IRTypeEnv_47 {
1113    IRType *types ;   1113    IRType *types ;
1114    Int types_size ;   1114    Int types_size ;
1115    Int types_used ;   1115    Int types_used ;
1116 };   1116 };
1117 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;   1117 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;
1118 struct __anonstruct_IRSB_48 {   1118 struct __anonstruct_IRSB_48 {
1119    IRTypeEnv *tyenv ;   1119    IRTypeEnv *tyenv ;
1120    IRStmt **stmts ;   1120    IRStmt **stmts ;
1121    Int stmts_size ;   1121    Int stmts_size ;
1122    Int stmts_used ;   1122    Int stmts_used ;
1123    IRExpr *next ;   1123    IRExpr *next ;
1124    IRJumpKind jumpkind ;   1124    IRJumpKind jumpkind ;
1125 };   1125 };
1126 typedef struct __anonstruct_IRSB_48 IRSB;   1126 typedef struct __anonstruct_IRSB_48 IRSB;
1127 enum __anonenum_VexArch_49 {   1127 enum __anonenum_VexArch_49 {
1128     VexArch_INVALID = 0,   1128     VexArch_INVALID = 0,
1129     VexArchX86 = 1,   1129     VexArchX86 = 1,
1130     VexArchAMD64 = 2,   1130     VexArchAMD64 = 2,
1131     VexArchARM = 3,   1131     VexArchARM = 3,
1132     VexArchPPC32 = 4,   1132     VexArchPPC32 = 4,
1133     VexArchPPC64 = 5,   1133     VexArchPPC64 = 5,
1134     VexArchS390X = 6   1134     VexArchS390X = 6
1135 } ;   1135 } ;
1136 typedef enum __anonenum_VexArch_49 VexArch;   1136 typedef enum __anonenum_VexArch_49 VexArch;
1137 struct __anonstruct_VexArchInfo_50 {   1137 struct __anonstruct_VexArchInfo_50 {
1138    UInt hwcaps ;   1138    UInt hwcaps ;
1139    Int ppc_cache_line_szB ;   1139    Int ppc_cache_line_szB ;
1140    UInt ppc_dcbz_szB ;   1140    UInt ppc_dcbz_szB ;
1141    UInt ppc_dcbzl_szB ;   1141    UInt ppc_dcbzl_szB ;
1142 };   1142 };
1143 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;   1143 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;
1144 struct __anonstruct_VexAbiInfo_51 {   1144 struct __anonstruct_VexAbiInfo_51 {
1145    Int guest_stack_redzone_size ;   1145    Int guest_stack_redzone_size ;
1146    Bool guest_amd64_assume_fs_is_zero ;   1146    Bool guest_amd64_assume_fs_is_zero ;
1147    Bool guest_amd64_assume_gs_is_0x60 ;   1147    Bool guest_amd64_assume_gs_is_0x60 ;
1148    Bool guest_ppc_zap_RZ_at_blr ;   1148    Bool guest_ppc_zap_RZ_at_blr ;
1149    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;   1149    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;
1150    Bool guest_ppc_sc_continues_at_LR ;   1150    Bool guest_ppc_sc_continues_at_LR ;
1151    Bool host_ppc_calls_use_fndescrs ;   1151    Bool host_ppc_calls_use_fndescrs ;
1152    Bool host_ppc32_regalign_int64_args ;   1152    Bool host_ppc32_regalign_int64_args ;
1153 };   1153 };
1154 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;   1154 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;
1155 struct __anonstruct_VexControl_52 {   1155 struct __anonstruct_VexControl_52 {
1156    Int iropt_verbosity ;   1156    Int iropt_verbosity ;
1157    Int iropt_level ;   1157    Int iropt_level ;
1158    Bool iropt_precise_memory_exns ;   1158    Bool iropt_precise_memory_exns ;
1159    Int iropt_unroll_thresh ;   1159    Int iropt_unroll_thresh ;
1160    Int guest_max_insns ;   1160    Int guest_max_insns ;
1161    Int guest_chase_thresh ;   1161    Int guest_chase_thresh ;
1162    Bool guest_chase_cond ;   1162    Bool guest_chase_cond ;
1163 };   1163 };
1164 typedef struct __anonstruct_VexControl_52 VexControl;   1164 typedef struct __anonstruct_VexControl_52 VexControl;
1165 struct __anonstruct_alwaysDefd_54 {   1165 struct __anonstruct_alwaysDefd_54 {
1166    Int offset ;   1166    Int offset ;
1167    Int size ;   1167    Int size ;
1168 };   1168 };
1169 struct __anonstruct_VexGuestLayout_53 {   1169 struct __anonstruct_VexGuestLayout_53 {
1170    Int total_sizeB ;   1170    Int total_sizeB ;
1171    Int offset_SP ;   1171    Int offset_SP ;
1172    Int sizeof_SP ;   1172    Int sizeof_SP ;
1173    Int offset_FP ;   1173    Int offset_FP ;
1174    Int sizeof_FP ;   1174    Int sizeof_FP ;
1175    Int offset_IP ;   1175    Int offset_IP ;
1176    Int sizeof_IP ;   1176    Int sizeof_IP ;
1177    Int n_alwaysDefd ;   1177    Int n_alwaysDefd ;
1178    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;   1178    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;
1179 };   1179 };
1180 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;   1180 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;
1181 enum __anonenum_VexTranslateResult_55 {   1181 enum __anonenum_VexTranslateResult_55 {
1182     VexTransOK = 0,   1182     VexTransOK = 0,
1183     VexTransAccessFail = 1,   1183     VexTransAccessFail = 1,
1184     VexTransOutputFull = 2   1184     VexTransOutputFull = 2
1185 } ;   1185 } ;
1186 typedef enum __anonenum_VexTranslateResult_55 VexTranslateResult;   1186 typedef enum __anonenum_VexTranslateResult_55 VexTranslateResult;
1187 struct __anonstruct_VexGuestExtents_56 {   1187 struct __anonstruct_VexGuestExtents_56 {
1188    Addr64 base[3] ;   1188    Addr64 base[3] ;
1189    UShort len[3] ;   1189    UShort len[3] ;
1190    UShort n_used ;   1190    UShort n_used ;
1191 };   1191 };
1192 typedef struct __anonstruct_VexGuestExtents_56 VexGuestExtents;   1192 typedef struct __anonstruct_VexGuestExtents_56 VexGuestExtents;
1193 struct __anonstruct_VexTranslateArgs_57 {   1193 struct __anonstruct_VexTranslateArgs_57 {
1194    VexArch arch_guest ;   1194    VexArch arch_guest ;
1195    VexArchInfo archinfo_guest ;   1195    VexArchInfo archinfo_guest ;
1196    VexArch arch_host ;   1196    VexArch arch_host ;
1197    VexArchInfo archinfo_host ;   1197    VexArchInfo archinfo_host ;
1198    VexAbiInfo abiinfo_both ;   1198    VexAbiInfo abiinfo_both ;
1199    void *callback_opaque ;   1199    void *callback_opaque ;
1200    UChar *guest_bytes ;   1200    UChar *guest_bytes ;
1201    Addr64 guest_bytes_addr ;   1201    Addr64 guest_bytes_addr ;
1202    Bool (*chase_into_ok)(void * , Addr64  ) ;   1202    Bool (*chase_into_ok)(void * , Addr64  ) ;
1203    VexGuestExtents *guest_extents ;   1203    VexGuestExtents *guest_extents ;
1204    UChar *host_bytes ;   1204    UChar *host_bytes ;
1205    Int host_bytes_size ;   1205    Int host_bytes_size ;
1206    Int *host_bytes_used ;   1206    Int *host_bytes_used ;
1207    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1207    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1208                         IRType gWordTy , IRType hWordTy ) ;   1208                         IRType gWordTy , IRType hWordTy ) ;
1209    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1209    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1210                         IRType gWordTy , IRType hWordTy ) ;   1210                         IRType gWordTy , IRType hWordTy ) ;
1211    IRSB *(*finaltidy)(IRSB * ) ;   1211    IRSB *(*finaltidy)(IRSB * ) ;
1212    Bool do_self_check ;   1212    Bool do_self_check ;
1213    Bool (*preamble_function)(void * , IRSB * ) ;   1213    Bool (*preamble_function)(void * , IRSB * ) ;
1214    Int traceflags ;   1214    Int traceflags ;
1215    void *dispatch ;   1215    void *dispatch ;
1216 };   1216 };
1217 typedef struct __anonstruct_VexTranslateArgs_57 VexTranslateArgs;   1217 typedef struct __anonstruct_VexTranslateArgs_57 VexTranslateArgs;
1218 enum __anonenum_VexEmWarn_58 {   1218 enum __anonenum_VexEmWarn_58 {
1219     EmWarn_NONE = 0,   1219     EmWarn_NONE = 0,
1220     EmWarn_X86_x87exns = 1,   1220     EmWarn_X86_x87exns = 1,
1221     EmWarn_X86_x87precision = 2,   1221     EmWarn_X86_x87precision = 2,
1222     EmWarn_X86_sseExns = 3,   1222     EmWarn_X86_sseExns = 3,
1223     EmWarn_X86_fz = 4,   1223     EmWarn_X86_fz = 4,
1224     EmWarn_X86_daz = 5,   1224     EmWarn_X86_daz = 5,
1225     EmWarn_X86_acFlag = 6,   1225     EmWarn_X86_acFlag = 6,
1226     EmWarn_PPCexns = 7,   1226     EmWarn_PPCexns = 7,
1227     EmWarn_PPC64_redir_overflow = 8,   1227     EmWarn_PPC64_redir_overflow = 8,
1228     EmWarn_PPC64_redir_underflow = 9,   1228     EmWarn_PPC64_redir_underflow = 9,
1229     EmWarn_NUMBER = 10   1229     EmWarn_NUMBER = 10
1230 } ;   1230 } ;
1231 typedef enum __anonenum_VexEmWarn_58 VexEmWarn;   1231 typedef enum __anonenum_VexEmWarn_58 VexEmWarn;
1232 struct __anonstruct_VexGuestX86State_59 {   1232 struct __anonstruct_VexGuestX86State_59 {
1233    UInt guest_EAX ;   1233    UInt guest_EAX ;
1234    UInt guest_ECX ;   1234    UInt guest_ECX ;
1235    UInt guest_EDX ;   1235    UInt guest_EDX ;
1236    UInt guest_EBX ;   1236    UInt guest_EBX ;
1237    UInt guest_ESP ;   1237    UInt guest_ESP ;
1238    UInt guest_EBP ;   1238    UInt guest_EBP ;
1239    UInt guest_ESI ;   1239    UInt guest_ESI ;
1240    UInt guest_EDI ;   1240    UInt guest_EDI ;
1241    UInt guest_CC_OP ;   1241    UInt guest_CC_OP ;
1242    UInt guest_CC_DEP1 ;   1242    UInt guest_CC_DEP1 ;
1243    UInt guest_CC_DEP2 ;   1243    UInt guest_CC_DEP2 ;
1244    UInt guest_CC_NDEP ;   1244    UInt guest_CC_NDEP ;
1245    UInt guest_DFLAG ;   1245    UInt guest_DFLAG ;
1246    UInt guest_IDFLAG ;   1246    UInt guest_IDFLAG ;
1247    UInt guest_ACFLAG ;   1247    UInt guest_ACFLAG ;
1248    UInt guest_EIP ;   1248    UInt guest_EIP ;
1249    ULong guest_FPREG[8] ;   1249    ULong guest_FPREG[8] ;
1250    UChar guest_FPTAG[8] ;   1250    UChar guest_FPTAG[8] ;
1251    UInt guest_FPROUND ;   1251    UInt guest_FPROUND ;
1252    UInt guest_FC3210 ;   1252    UInt guest_FC3210 ;
1253    UInt guest_FTOP ;   1253    UInt guest_FTOP ;
1254    UInt guest_SSEROUND ;   1254    UInt guest_SSEROUND ;
1255    U128 guest_XMM0 ;   1255    U128 guest_XMM0 ;
1256    U128 guest_XMM1 ;   1256    U128 guest_XMM1 ;
1257    U128 guest_XMM2 ;   1257    U128 guest_XMM2 ;
1258    U128 guest_XMM3 ;   1258    U128 guest_XMM3 ;
1259    U128 guest_XMM4 ;   1259    U128 guest_XMM4 ;
1260    U128 guest_XMM5 ;   1260    U128 guest_XMM5 ;
1261    U128 guest_XMM6 ;   1261    U128 guest_XMM6 ;
1262    U128 guest_XMM7 ;   1262    U128 guest_XMM7 ;
1263    UShort guest_CS ;   1263    UShort guest_CS ;
1264    UShort guest_DS ;   1264    UShort guest_DS ;
1265    UShort guest_ES ;   1265    UShort guest_ES ;
1266    UShort guest_FS ;   1266    UShort guest_FS ;
1267    UShort guest_GS ;   1267    UShort guest_GS ;
1268    UShort guest_SS ;   1268    UShort guest_SS ;
1269    HWord guest_LDT ;   1269    HWord guest_LDT ;
1270    HWord guest_GDT ;   1270    HWord guest_GDT ;
1271    UInt guest_EMWARN ;   1271    UInt guest_EMWARN ;
1272    UInt guest_TISTART ;   1272    UInt guest_TISTART ;
1273    UInt guest_TILEN ;   1273    UInt guest_TILEN ;
1274    UInt guest_NRADDR ;   1274    UInt guest_NRADDR ;
1275    UInt guest_SC_CLASS ;   1275    UInt guest_SC_CLASS ;
1276    UInt guest_IP_AT_SYSCALL ;   1276    UInt guest_IP_AT_SYSCALL ;
1277    UInt padding1 ;   1277    UInt padding1 ;
1278    UInt padding2 ;   1278    UInt padding2 ;
1279    UInt padding3 ;   1279    UInt padding3 ;
1280 };   1280 };
1281 typedef struct __anonstruct_VexGuestX86State_59 VexGuestX86State;   1281 typedef struct __anonstruct_VexGuestX86State_59 VexGuestX86State;
1282 struct __anonstruct_Bits_62 {   1282 struct __anonstruct_Bits_62 {
1283    UShort LimitLow ;   1283    UShort LimitLow ;
1284    UShort BaseLow ;   1284    UShort BaseLow ;
1285    UInt BaseMid : 8 ;   1285    UInt BaseMid : 8 ;
1286    UInt Type : 5 ;   1286    UInt Type : 5 ;
1287    UInt Dpl : 2 ;   1287    UInt Dpl : 2 ;
1288    UInt Pres : 1 ;   1288    UInt Pres : 1 ;
1289    UInt LimitHi : 4 ;   1289    UInt LimitHi : 4 ;
1290    UInt Sys : 1 ;   1290    UInt Sys : 1 ;
1291    UInt Reserved_0 : 1 ;   1291    UInt Reserved_0 : 1 ;
1292    UInt Default_Big : 1 ;   1292    UInt Default_Big : 1 ;
1293    UInt Granularity : 1 ;   1293    UInt Granularity : 1 ;
1294    UInt BaseHi : 8 ;   1294    UInt BaseHi : 8 ;
1295 };   1295 };
1296 struct __anonstruct_Words_63 {   1296 struct __anonstruct_Words_63 {
1297    UInt word1 ;   1297    UInt word1 ;
1298    UInt word2 ;   1298    UInt word2 ;
1299 };   1299 };
1300 union __anonunion_LdtEnt_61 {   1300 union __anonunion_LdtEnt_61 {
1301    struct __anonstruct_Bits_62 Bits ;   1301    struct __anonstruct_Bits_62 Bits ;
1302    struct __anonstruct_Words_63 Words ;   1302    struct __anonstruct_Words_63 Words ;
1303 };   1303 };
1304 struct __anonstruct_VexGuestX86SegDescr_60 {   1304 struct __anonstruct_VexGuestX86SegDescr_60 {
1305    union __anonunion_LdtEnt_61 LdtEnt ;   1305    union __anonunion_LdtEnt_61 LdtEnt ;
1306 };   1306 };
1307 typedef struct __anonstruct_VexGuestX86SegDescr_60 VexGuestX86SegDescr;   1307 typedef struct __anonstruct_VexGuestX86SegDescr_60 VexGuestX86SegDescr;
1308 struct __anonstruct_X86_66 {   1308 struct __anonstruct_X86_66 {
1309    UInt r_ebp ;   1309    UInt r_ebp ;
1310 };   1310 };
1311 struct __anonstruct_AMD64_67 {   1311 struct __anonstruct_AMD64_67 {
1312    ULong r_rbp ;   1312    ULong r_rbp ;
1313 };   1313 };
1314 struct __anonstruct_PPC32_68 {   1314 struct __anonstruct_PPC32_68 {
1315    UInt r_lr ;   1315    UInt r_lr ;
1316 };   1316 };
1317 struct __anonstruct_PPC64_69 {   1317 struct __anonstruct_PPC64_69 {
1318    ULong r_lr ;   1318    ULong r_lr ;
1319 };   1319 };
1320 struct __anonstruct_ARM_70 {   1320 struct __anonstruct_ARM_70 {
1321    UInt r14 ;   1321    UInt r14 ;
1322    UInt r12 ;   1322    UInt r12 ;
1323    UInt r11 ;   1323    UInt r11 ;
1324    UInt r7 ;   1324    UInt r7 ;
1325 };   1325 };
1326 struct __anonstruct_S390X_71 {   1326 struct __anonstruct_S390X_71 {
1327    ULong r_fp ;   1327    ULong r_fp ;
1328    ULong r_lr ;   1328    ULong r_lr ;
1329 };   1329 };
1330 union __anonunion_misc_65 {   1330 union __anonunion_misc_65 {
1331    struct __anonstruct_X86_66 X86 ;   1331    struct __anonstruct_X86_66 X86 ;
1332    struct __anonstruct_AMD64_67 AMD64 ;   1332    struct __anonstruct_AMD64_67 AMD64 ;
1333    struct __anonstruct_PPC32_68 PPC32 ;   1333    struct __anonstruct_PPC32_68 PPC32 ;
1334    struct __anonstruct_PPC64_69 PPC64 ;   1334    struct __anonstruct_PPC64_69 PPC64 ;
1335    struct __anonstruct_ARM_70 ARM ;   1335    struct __anonstruct_ARM_70 ARM ;
1336    struct __anonstruct_S390X_71 S390X ;   1336    struct __anonstruct_S390X_71 S390X ;
1337 };   1337 };
1338 struct __anonstruct_UnwindStartRegs_64 {   1338 struct __anonstruct_UnwindStartRegs_64 {
1339    ULong r_pc ;   1339    ULong r_pc ;
1340    ULong r_sp ;   1340    ULong r_sp ;
1341    union __anonunion_misc_65 misc ;   1341    union __anonunion_misc_65 misc ;
1342 };   1342 };
1343 typedef struct __anonstruct_UnwindStartRegs_64 UnwindStartRegs;   1343 typedef struct __anonstruct_UnwindStartRegs_64 UnwindStartRegs;
1344 typedef unsigned short __vki_kernel_mode_t;   1344 typedef unsigned short __vki_kernel_mode_t;
1345 typedef long __vki_kernel_off_t;   1345 typedef long __vki_kernel_off_t;
1346 typedef int __vki_kernel_pid_t;   1346 typedef int __vki_kernel_pid_t;
1347 typedef unsigned short __vki_kernel_ipc_pid_t;   1347 typedef unsigned short __vki_kernel_ipc_pid_t;
1348 typedef unsigned short __vki_kernel_uid_t;   1348 typedef unsigned short __vki_kernel_uid_t;
1349 typedef unsigned short __vki_kernel_gid_t;   1349 typedef unsigned short __vki_kernel_gid_t;
1350 typedef unsigned int __vki_kernel_size_t;   1350 typedef unsigned int __vki_kernel_size_t;
1351 typedef long __vki_kernel_time_t;   1351 typedef long __vki_kernel_time_t;
1352 typedef long __vki_kernel_suseconds_t;   1352 typedef long __vki_kernel_suseconds_t;
1353 typedef long __vki_kernel_clock_t;   1353 typedef long __vki_kernel_clock_t;
1354 typedef int __vki_kernel_timer_t;   1354 typedef int __vki_kernel_timer_t;
1355 typedef int __vki_kernel_clockid_t;   1355 typedef int __vki_kernel_clockid_t;
1356 typedef char *__vki_kernel_caddr_t;   1356 typedef char *__vki_kernel_caddr_t;
1357 typedef unsigned int __vki_kernel_uid32_t;   1357 typedef unsigned int __vki_kernel_uid32_t;
1358 typedef unsigned int __vki_kernel_gid32_t;   1358 typedef unsigned int __vki_kernel_gid32_t;
1359 typedef unsigned short __vki_kernel_old_uid_t;   1359 typedef unsigned short __vki_kernel_old_uid_t;
1360 typedef unsigned short __vki_kernel_old_gid_t;   1360 typedef unsigned short __vki_kernel_old_gid_t;
1361 typedef long long __vki_kernel_loff_t;   1361 typedef long long __vki_kernel_loff_t;
1362 struct __anonstruct___vki_kernel_fsid_t_72 {   1362 struct __anonstruct___vki_kernel_fsid_t_72 {
1363    int val[2] ;   1363    int val[2] ;
1364 };   1364 };
1365 typedef struct __anonstruct___vki_kernel_fsid_t_72 __vki_kernel_fsid_t;   1365 typedef struct __anonstruct___vki_kernel_fsid_t_72 __vki_kernel_fsid_t;
1366 struct __anonstruct___vki_kernel_fd_set_73 {   1366 struct __anonstruct___vki_kernel_fd_set_73 {
1367    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;   1367    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;
1368 };   1368 };
1369 typedef struct __anonstruct___vki_kernel_fd_set_73 __vki_kernel_fd_set;   1369 typedef struct __anonstruct___vki_kernel_fd_set_73 __vki_kernel_fd_set;
1370 typedef int __vki_kernel_key_t;   1370 typedef int __vki_kernel_key_t;
1371 typedef int __vki_kernel_mqd_t;   1371 typedef int __vki_kernel_mqd_t;
1372 typedef __vki_kernel_fd_set vki_fd_set;   1372 typedef __vki_kernel_fd_set vki_fd_set;
1373 typedef __vki_kernel_mode_t vki_mode_t;   1373 typedef __vki_kernel_mode_t vki_mode_t;
1374 typedef __vki_kernel_off_t vki_off_t;   1374 typedef __vki_kernel_off_t vki_off_t;
1375 typedef __vki_kernel_pid_t vki_pid_t;   1375 typedef __vki_kernel_pid_t vki_pid_t;
1376 typedef __vki_kernel_key_t vki_key_t;   1376 typedef __vki_kernel_key_t vki_key_t;
1377 typedef __vki_kernel_suseconds_t vki_suseconds_t;   1377 typedef __vki_kernel_suseconds_t vki_suseconds_t;
1378 typedef __vki_kernel_timer_t vki_timer_t;   1378 typedef __vki_kernel_timer_t vki_timer_t;
1379 typedef __vki_kernel_clockid_t vki_clockid_t;   1379 typedef __vki_kernel_clockid_t vki_clockid_t;
1380 typedef __vki_kernel_mqd_t vki_mqd_t;   1380 typedef __vki_kernel_mqd_t vki_mqd_t;
1381 typedef __vki_kernel_uid32_t vki_uid_t;   1381 typedef __vki_kernel_uid32_t vki_uid_t;
1382 typedef __vki_kernel_gid32_t vki_gid_t;   1382 typedef __vki_kernel_gid32_t vki_gid_t;
1383 typedef __vki_kernel_old_uid_t vki_old_uid_t;   1383 typedef __vki_kernel_old_uid_t vki_old_uid_t;
1384 typedef __vki_kernel_old_gid_t vki_old_gid_t;   1384 typedef __vki_kernel_old_gid_t vki_old_gid_t;
1385 typedef __vki_kernel_loff_t vki_loff_t;   1385 typedef __vki_kernel_loff_t vki_loff_t;
1386 typedef __vki_kernel_size_t vki_size_t;   1386 typedef __vki_kernel_size_t vki_size_t;
1387 typedef __vki_kernel_time_t vki_time_t;   1387 typedef __vki_kernel_time_t vki_time_t;
1388 typedef __vki_kernel_clock_t vki_clock_t;   1388 typedef __vki_kernel_clock_t vki_clock_t;
1389 typedef __vki_kernel_caddr_t vki_caddr_t;   1389 typedef __vki_kernel_caddr_t vki_caddr_t;
1390 typedef unsigned long vki_u_long;   1390 typedef unsigned long vki_u_long;
1391 typedef unsigned int vki_uint;   1391 typedef unsigned int vki_uint;
1392 typedef unsigned char __vki_u8;   1392 typedef unsigned char __vki_u8;
1393 typedef short __vki_s16;   1393 typedef short __vki_s16;
1394 typedef unsigned short __vki_u16;   1394 typedef unsigned short __vki_u16;
1395 typedef int __vki_s32;   1395 typedef int __vki_s32;
1396 typedef unsigned int __vki_u32;   1396 typedef unsigned int __vki_u32;
1397 typedef long long __vki_s64;   1397 typedef long long __vki_s64;
1398 typedef unsigned long long __vki_u64;   1398 typedef unsigned long long __vki_u64;
1399 typedef unsigned short vki_u16;   1399 typedef unsigned short vki_u16;
1400 typedef unsigned int vki_u32;   1400 typedef unsigned int vki_u32;
1401 typedef void __vki_signalfn_t(int  );   1401 typedef void __vki_signalfn_t(int  );
1402 typedef __vki_signalfn_t *__vki_sighandler_t;   1402 typedef __vki_signalfn_t *__vki_sighandler_t;
1403 typedef void __vki_restorefn_t(void);   1403 typedef void __vki_restorefn_t(void);
1404 typedef __vki_restorefn_t *__vki_sigrestore_t;   1404 typedef __vki_restorefn_t *__vki_sigrestore_t;
1405 typedef unsigned long vki_old_sigset_t;   1405 typedef unsigned long vki_old_sigset_t;
1406 struct __anonstruct_vki_sigset_t_74 {   1406 struct __anonstruct_vki_sigset_t_74 {
1407    unsigned long sig[2] ;   1407    unsigned long sig[2] ;
1408 };   1408 };
1409 typedef struct __anonstruct_vki_sigset_t_74 vki_sigset_t;   1409 typedef struct __anonstruct_vki_sigset_t_74 vki_sigset_t;
1410 struct vki_old_sigaction {   1410 struct vki_old_sigaction {
1411    __vki_sighandler_t ksa_handler ;   1411    __vki_sighandler_t ksa_handler ;
1412    vki_old_sigset_t sa_mask ;   1412    vki_old_sigset_t sa_mask ;
1413    unsigned long sa_flags ;   1413    unsigned long sa_flags ;
1414    __vki_sigrestore_t sa_restorer ;   1414    __vki_sigrestore_t sa_restorer ;
1415 };   1415 };
1416 struct vki_sigaction_base {   1416 struct vki_sigaction_base {
1417    __vki_sighandler_t ksa_handler ;   1417    __vki_sighandler_t ksa_handler ;
1418    unsigned long sa_flags ;   1418    unsigned long sa_flags ;
1419    __vki_sigrestore_t sa_restorer ;   1419    __vki_sigrestore_t sa_restorer ;
1420    vki_sigset_t sa_mask ;   1420    vki_sigset_t sa_mask ;
1421 };   1421 };
1422 typedef struct vki_sigaction_base vki_sigaction_toK_t;   1422 typedef struct vki_sigaction_base vki_sigaction_toK_t;
1423 typedef struct vki_sigaction_base vki_sigaction_fromK_t;   1423 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
1424 struct vki_sigaltstack {   1424 struct vki_sigaltstack {
1425    void *ss_sp ;   1425    void *ss_sp ;
1426    int ss_flags ;   1426    int ss_flags ;
1427    vki_size_t ss_size ;   1427    vki_size_t ss_size ;
1428 };   1428 };
1429 typedef struct vki_sigaltstack vki_stack_t;   1429 typedef struct vki_sigaltstack vki_stack_t;
1430 struct _vki_fpreg {   1430 struct _vki_fpreg {
1431    unsigned short significand[4] ;   1431    unsigned short significand[4] ;
1432    unsigned short exponent ;   1432    unsigned short exponent ;
1433 };   1433 };
1434 struct _vki_fpxreg {   1434 struct _vki_fpxreg {
1435    unsigned short significand[4] ;   1435    unsigned short significand[4] ;
1436    unsigned short exponent ;   1436    unsigned short exponent ;
1437    unsigned short padding[3] ;   1437    unsigned short padding[3] ;
1438 };   1438 };
1439 struct _vki_xmmreg {   1439 struct _vki_xmmreg {
1440    unsigned long element[4] ;   1440    unsigned long element[4] ;
1441 };   1441 };
1442 struct _vki_fpstate {   1442 struct _vki_fpstate {
1443    unsigned long cw ;   1443    unsigned long cw ;
1444    unsigned long sw ;   1444    unsigned long sw ;
1445    unsigned long tag ;   1445    unsigned long tag ;
1446    unsigned long ipoff ;   1446    unsigned long ipoff ;
1447    unsigned long cssel ;   1447    unsigned long cssel ;
1448    unsigned long dataoff ;   1448    unsigned long dataoff ;
1449    unsigned long datasel ;   1449    unsigned long datasel ;
1450    struct _vki_fpreg _st[8] ;   1450    struct _vki_fpreg _st[8] ;
1451    unsigned short status ;   1451    unsigned short status ;
1452    unsigned short magic ;   1452    unsigned short magic ;
1453    unsigned long _fxsr_env[6] ;   1453    unsigned long _fxsr_env[6] ;
1454    unsigned long mxcsr ;   1454    unsigned long mxcsr ;
1455    unsigned long reserved ;   1455    unsigned long reserved ;
1456    struct _vki_fpxreg _fxsr_st[8] ;   1456    struct _vki_fpxreg _fxsr_st[8] ;
1457    struct _vki_xmmreg _xmm[8] ;   1457    struct _vki_xmmreg _xmm[8] ;
1458    unsigned long padding[56] ;   1458    unsigned long padding[56] ;
1459 };   1459 };
1460 struct vki_sigcontext {   1460 struct vki_sigcontext {
1461    unsigned short gs ;   1461    unsigned short gs ;
1462    unsigned short __gsh ;   1462    unsigned short __gsh ;
1463    unsigned short fs ;   1463    unsigned short fs ;
1464    unsigned short __fsh ;   1464    unsigned short __fsh ;
1465    unsigned short es ;   1465    unsigned short es ;
1466    unsigned short __esh ;   1466    unsigned short __esh ;
1467    unsigned short ds ;   1467    unsigned short ds ;
1468    unsigned short __dsh ;   1468    unsigned short __dsh ;
1469    unsigned long edi ;   1469    unsigned long edi ;
1470    unsigned long esi ;   1470    unsigned long esi ;
1471    unsigned long ebp ;   1471    unsigned long ebp ;
1472    unsigned long esp ;   1472    unsigned long esp ;
1473    unsigned long ebx ;   1473    unsigned long ebx ;
1474    unsigned long edx ;   1474    unsigned long edx ;
1475    unsigned long ecx ;   1475    unsigned long ecx ;
1476    unsigned long eax ;   1476    unsigned long eax ;
1477    unsigned long trapno ;   1477    unsigned long trapno ;
1478    unsigned long err ;   1478    unsigned long err ;
1479    unsigned long eip ;   1479    unsigned long eip ;
1480    unsigned short cs ;   1480    unsigned short cs ;
1481    unsigned short __csh ;   1481    unsigned short __csh ;
1482    unsigned long eflags ;   1482    unsigned long eflags ;
1483    unsigned long esp_at_signal ;   1483    unsigned long esp_at_signal ;
1484    unsigned short ss ;   1484    unsigned short ss ;
1485    unsigned short __ssh ;   1485    unsigned short __ssh ;
1486    struct _vki_fpstate *fpstate ;   1486    struct _vki_fpstate *fpstate ;
1487    unsigned long oldmask ;   1487    unsigned long oldmask ;
1488    unsigned long cr2 ;   1488    unsigned long cr2 ;
1489 };   1489 };
1490 struct vki_stat {   1490 struct vki_stat {
1491    unsigned long st_dev ;   1491    unsigned long st_dev ;
1492    unsigned long st_ino ;   1492    unsigned long st_ino ;
1493    unsigned short st_mode ;   1493    unsigned short st_mode ;
1494    unsigned short st_nlink ;   1494    unsigned short st_nlink ;
1495    unsigned short st_uid ;   1495    unsigned short st_uid ;
1496    unsigned short st_gid ;   1496    unsigned short st_gid ;
1497    unsigned long st_rdev ;   1497    unsigned long st_rdev ;
1498    unsigned long st_size ;   1498    unsigned long st_size ;
1499    unsigned long st_blksize ;   1499    unsigned long st_blksize ;
1500    unsigned long st_blocks ;   1500    unsigned long st_blocks ;
1501    unsigned long st_atime ;   1501    unsigned long st_atime ;
1502    unsigned long st_atime_nsec ;   1502    unsigned long st_atime_nsec ;
1503    unsigned long st_mtime ;   1503    unsigned long st_mtime ;
1504    unsigned long st_mtime_nsec ;   1504    unsigned long st_mtime_nsec ;
1505    unsigned long st_ctime ;   1505    unsigned long st_ctime ;
1506    unsigned long st_ctime_nsec ;   1506    unsigned long st_ctime_nsec ;
1507    unsigned long __unused4 ;   1507    unsigned long __unused4 ;
1508    unsigned long __unused5 ;   1508    unsigned long __unused5 ;
1509 };   1509 };
1510 struct vki_stat64 {   1510 struct vki_stat64 {
1511    unsigned long long st_dev ;   1511    unsigned long long st_dev ;
1512    unsigned char __pad0[4] ;   1512    unsigned char __pad0[4] ;
1513    unsigned long __st_ino ;   1513    unsigned long __st_ino ;
1514    unsigned int st_mode ;   1514    unsigned int st_mode ;
1515    unsigned int st_nlink ;   1515    unsigned int st_nlink ;
1516    unsigned long st_uid ;   1516    unsigned long st_uid ;
1517    unsigned long st_gid ;   1517    unsigned long st_gid ;
1518    unsigned long long st_rdev ;   1518    unsigned long long st_rdev ;
1519    unsigned char __pad3[4] ;   1519    unsigned char __pad3[4] ;
1520    long long st_size ;   1520    long long st_size ;
1521    unsigned long st_blksize ;   1521    unsigned long st_blksize ;
1522    unsigned long st_blocks ;   1522    unsigned long st_blocks ;
1523    unsigned long __pad4 ;   1523    unsigned long __pad4 ;
1524    unsigned long st_atime ;   1524    unsigned long st_atime ;
1525    unsigned long st_atime_nsec ;   1525    unsigned long st_atime_nsec ;
1526    unsigned long st_mtime ;   1526    unsigned long st_mtime ;
1527    unsigned int st_mtime_nsec ;   1527    unsigned int st_mtime_nsec ;
1528    unsigned long st_ctime ;   1528    unsigned long st_ctime ;
1529    unsigned long st_ctime_nsec ;   1529    unsigned long st_ctime_nsec ;
1530    unsigned long long st_ino ;   1530    unsigned long long st_ino ;
1531 };   1531 };
1532 struct vki_statfs {   1532 struct vki_statfs {
1533    __vki_u32 f_type ;   1533    __vki_u32 f_type ;
1534    __vki_u32 f_bsize ;   1534    __vki_u32 f_bsize ;
1535    __vki_u32 f_blocks ;   1535    __vki_u32 f_blocks ;
1536    __vki_u32 f_bfree ;   1536    __vki_u32 f_bfree ;
1537    __vki_u32 f_bavail ;   1537    __vki_u32 f_bavail ;
1538    __vki_u32 f_files ;   1538    __vki_u32 f_files ;
1539    __vki_u32 f_ffree ;   1539    __vki_u32 f_ffree ;
1540    __vki_kernel_fsid_t f_fsid ;   1540    __vki_kernel_fsid_t f_fsid ;
1541    __vki_u32 f_namelen ;   1541    __vki_u32 f_namelen ;
1542    __vki_u32 f_frsize ;   1542    __vki_u32 f_frsize ;
1543    __vki_u32 f_spare[5] ;   1543    __vki_u32 f_spare[5] ;
1544 };   1544 };
1545 struct vki_winsize {   1545 struct vki_winsize {
1546    unsigned short ws_row ;   1546    unsigned short ws_row ;
1547    unsigned short ws_col ;   1547    unsigned short ws_col ;
1548    unsigned short ws_xpixel ;   1548    unsigned short ws_xpixel ;
1549    unsigned short ws_ypixel ;   1549    unsigned short ws_ypixel ;
1550 };   1550 };
1551 struct vki_termio {   1551 struct vki_termio {
1552    unsigned short c_iflag ;   1552    unsigned short c_iflag ;
1553    unsigned short c_oflag ;   1553    unsigned short c_oflag ;
1554    unsigned short c_cflag ;   1554    unsigned short c_cflag ;
1555    unsigned short c_lflag ;   1555    unsigned short c_lflag ;
1556    unsigned char c_line ;   1556    unsigned char c_line ;
1557    unsigned char c_cc[8] ;   1557    unsigned char c_cc[8] ;
1558 };   1558 };
1559 typedef unsigned char vki_cc_t;   1559 typedef unsigned char vki_cc_t;
1560 typedef unsigned int vki_tcflag_t;   1560 typedef unsigned int vki_tcflag_t;
1561 struct vki_termios {   1561 struct vki_termios {
1562    vki_tcflag_t c_iflag ;   1562    vki_tcflag_t c_iflag ;
1563    vki_tcflag_t c_oflag ;   1563    vki_tcflag_t c_oflag ;
1564    vki_tcflag_t c_cflag ;   1564    vki_tcflag_t c_cflag ;
1565    vki_tcflag_t c_lflag ;   1565    vki_tcflag_t c_lflag ;
1566    vki_cc_t c_line ;   1566    vki_cc_t c_line ;
1567    vki_cc_t c_cc[19] ;   1567    vki_cc_t c_cc[19] ;
1568 };   1568 };
1569 struct vki_pollfd {   1569 struct vki_pollfd {
1570    int fd ;   1570    int fd ;
1571    short events ;   1571    short events ;
1572    short revents ;   1572    short revents ;
1573 };   1573 };
1574 struct vki_user_i387_struct {   1574 struct vki_user_i387_struct {
1575    long cwd ;   1575    long cwd ;
1576    long swd ;   1576    long swd ;
1577    long twd ;   1577    long twd ;
1578    long fip ;   1578    long fip ;
1579    long fcs ;   1579    long fcs ;
1580    long foo ;   1580    long foo ;
1581    long fos ;   1581    long fos ;
1582    long st_space[20] ;   1582    long st_space[20] ;
1583 };   1583 };
1584 struct vki_user_fxsr_struct {   1584 struct vki_user_fxsr_struct {
1585    unsigned short cwd ;   1585    unsigned short cwd ;
1586    unsigned short swd ;   1586    unsigned short swd ;
1587    unsigned short twd ;   1587    unsigned short twd ;
1588    unsigned short fop ;   1588    unsigned short fop ;
1589    long fip ;   1589    long fip ;
1590    long fcs ;   1590    long fcs ;
1591    long foo ;   1591    long foo ;
1592    long fos ;   1592    long fos ;
1593    long mxcsr ;   1593    long mxcsr ;
1594    long reserved ;   1594    long reserved ;
1595    long st_space[32] ;   1595    long st_space[32] ;
1596    long xmm_space[32] ;   1596    long xmm_space[32] ;
1597    long padding[56] ;   1597    long padding[56] ;
1598 };   1598 };
1599 struct vki_user_regs_struct {   1599 struct vki_user_regs_struct {
1600    long ebx ;   1600    long ebx ;
1601    long ecx ;   1601    long ecx ;
1602    long edx ;   1602    long edx ;
1603    long esi ;   1603    long esi ;
1604    long edi ;   1604    long edi ;
1605    long ebp ;   1605    long ebp ;
1606    long eax ;   1606    long eax ;
1607    unsigned short ds ;   1607    unsigned short ds ;
1608    unsigned short __ds ;   1608    unsigned short __ds ;
1609    unsigned short es ;   1609    unsigned short es ;
1610    unsigned short __es ;   1610    unsigned short __es ;
1611    unsigned short fs ;   1611    unsigned short fs ;
1612    unsigned short __fs ;   1612    unsigned short __fs ;
1613    unsigned short gs ;   1613    unsigned short gs ;
1614    unsigned short __gs ;   1614    unsigned short __gs ;
1615    long orig_eax ;   1615    long orig_eax ;
1616    long eip ;   1616    long eip ;
1617    unsigned short cs ;   1617    unsigned short cs ;
1618    unsigned short __cs ;   1618    unsigned short __cs ;
1619    long eflags ;   1619    long eflags ;
1620    long esp ;   1620    long esp ;
1621    unsigned short ss ;   1621    unsigned short ss ;
1622    unsigned short __ss ;   1622    unsigned short __ss ;
1623 };   1623 };
1624 typedef unsigned long vki_elf_greg_t;   1624 typedef unsigned long vki_elf_greg_t;
1625 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];   1625 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];
1626 typedef struct vki_user_i387_struct vki_elf_fpregset_t;   1626 typedef struct vki_user_i387_struct vki_elf_fpregset_t;
1627 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;   1627 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
1628 struct vki_ucontext {   1628 struct vki_ucontext {
1629    unsigned long uc_flags ;   1629    unsigned long uc_flags ;
1630    struct vki_ucontext *uc_link ;   1630    struct vki_ucontext *uc_link ;
1631    vki_stack_t uc_stack ;   1631    vki_stack_t uc_stack ;
1632    struct vki_sigcontext uc_mcontext ;   1632    struct vki_sigcontext uc_mcontext ;
1633    vki_sigset_t uc_sigmask ;   1633    vki_sigset_t uc_sigmask ;
1634 };   1634 };
1635 struct vki_user_desc {   1635 struct vki_user_desc {
1636    unsigned int entry_number ;   1636    unsigned int entry_number ;
1637    unsigned long base_addr ;   1637    unsigned long base_addr ;
1638    unsigned int limit ;   1638    unsigned int limit ;
1639    unsigned int seg_32bit : 1 ;   1639    unsigned int seg_32bit : 1 ;
1640    unsigned int contents : 2 ;   1640    unsigned int contents : 2 ;
1641    unsigned int read_exec_only : 1 ;   1641    unsigned int read_exec_only : 1 ;
1642    unsigned int limit_in_pages : 1 ;   1642    unsigned int limit_in_pages : 1 ;
1643    unsigned int seg_not_present : 1 ;   1643    unsigned int seg_not_present : 1 ;
1644    unsigned int useable : 1 ;   1644    unsigned int useable : 1 ;
1645    unsigned int reserved : 25 ;   1645    unsigned int reserved : 25 ;
1646 };   1646 };
1647 typedef struct vki_user_desc vki_modify_ldt_t;   1647 typedef struct vki_user_desc vki_modify_ldt_t;
1648 struct vki_ipc64_perm {   1648 struct vki_ipc64_perm {
1649    __vki_kernel_key_t key ;   1649    __vki_kernel_key_t key ;
1650    __vki_kernel_uid32_t uid ;   1650    __vki_kernel_uid32_t uid ;
1651    __vki_kernel_gid32_t gid ;   1651    __vki_kernel_gid32_t gid ;
1652    __vki_kernel_uid32_t cuid ;   1652    __vki_kernel_uid32_t cuid ;
1653    __vki_kernel_gid32_t cgid ;   1653    __vki_kernel_gid32_t cgid ;
1654    __vki_kernel_mode_t mode ;   1654    __vki_kernel_mode_t mode ;
1655    unsigned short __pad1 ;   1655    unsigned short __pad1 ;
1656    unsigned short seq ;   1656    unsigned short seq ;
1657    unsigned short __pad2 ;   1657    unsigned short __pad2 ;
1658    unsigned long __unused1 ;   1658    unsigned long __unused1 ;
1659    unsigned long __unused2 ;   1659    unsigned long __unused2 ;
1660 };   1660 };
1661 struct vki_semid64_ds {   1661 struct vki_semid64_ds {
1662    struct vki_ipc64_perm sem_perm ;   1662    struct vki_ipc64_perm sem_perm ;
1663    __vki_kernel_time_t sem_otime ;   1663    __vki_kernel_time_t sem_otime ;
1664    unsigned long __unused1 ;   1664    unsigned long __unused1 ;
1665    __vki_kernel_time_t sem_ctime ;   1665    __vki_kernel_time_t sem_ctime ;
1666    unsigned long __unused2 ;   1666    unsigned long __unused2 ;
1667    unsigned long sem_nsems ;   1667    unsigned long sem_nsems ;
1668    unsigned long __unused3 ;   1668    unsigned long __unused3 ;
1669    unsigned long __unused4 ;   1669    unsigned long __unused4 ;
1670 };   1670 };
1671 struct vki_msqid64_ds {   1671 struct vki_msqid64_ds {
1672    struct vki_ipc64_perm msg_perm ;   1672    struct vki_ipc64_perm msg_perm ;
1673    __vki_kernel_time_t msg_stime ;   1673    __vki_kernel_time_t msg_stime ;
1674    unsigned long __unused1 ;   1674    unsigned long __unused1 ;
1675    __vki_kernel_time_t msg_rtime ;   1675    __vki_kernel_time_t msg_rtime ;
1676    unsigned long __unused2 ;   1676    unsigned long __unused2 ;
1677    __vki_kernel_time_t msg_ctime ;   1677    __vki_kernel_time_t msg_ctime ;
1678    unsigned long __unused3 ;   1678    unsigned long __unused3 ;
1679    unsigned long msg_cbytes ;   1679    unsigned long msg_cbytes ;
1680    unsigned long msg_qnum ;   1680    unsigned long msg_qnum ;
1681    unsigned long msg_qbytes ;   1681    unsigned long msg_qbytes ;
1682    __vki_kernel_pid_t msg_lspid ;   1682    __vki_kernel_pid_t msg_lspid ;
1683    __vki_kernel_pid_t msg_lrpid ;   1683    __vki_kernel_pid_t msg_lrpid ;
1684    unsigned long __unused4 ;   1684    unsigned long __unused4 ;
1685    unsigned long __unused5 ;   1685    unsigned long __unused5 ;
1686 };   1686 };
1687 struct vki_msgbuf;   1687 struct vki_msgbuf;
1688 struct vki_ipc_kludge {   1688 struct vki_ipc_kludge {
1689    struct vki_msgbuf *msgp ;   1689    struct vki_msgbuf *msgp ;
1690    long msgtyp ;   1690    long msgtyp ;
1691 };   1691 };
1692 struct vki_shmid64_ds {   1692 struct vki_shmid64_ds {
1693    struct vki_ipc64_perm shm_perm ;   1693    struct vki_ipc64_perm shm_perm ;
1694    vki_size_t shm_segsz ;   1694    vki_size_t shm_segsz ;
1695    __vki_kernel_time_t shm_atime ;   1695    __vki_kernel_time_t shm_atime ;
1696    unsigned long __unused1 ;   1696    unsigned long __unused1 ;
1697    __vki_kernel_time_t shm_dtime ;   1697    __vki_kernel_time_t shm_dtime ;
1698    unsigned long __unused2 ;   1698    unsigned long __unused2 ;
1699    __vki_kernel_time_t shm_ctime ;   1699    __vki_kernel_time_t shm_ctime ;
1700    unsigned long __unused3 ;   1700    unsigned long __unused3 ;
1701    __vki_kernel_pid_t shm_cpid ;   1701    __vki_kernel_pid_t shm_cpid ;
1702    __vki_kernel_pid_t shm_lpid ;   1702    __vki_kernel_pid_t shm_lpid ;
1703    unsigned long shm_nattch ;   1703    unsigned long shm_nattch ;
1704    unsigned long __unused4 ;   1704    unsigned long __unused4 ;
1705    unsigned long __unused5 ;   1705    unsigned long __unused5 ;
1706 };   1706 };
1707 struct vki_shminfo64 {   1707 struct vki_shminfo64 {
1708    unsigned long shmmax ;   1708    unsigned long shmmax ;
1709    unsigned long shmmin ;   1709    unsigned long shmmin ;
1710    unsigned long shmmni ;   1710    unsigned long shmmni ;
1711    unsigned long shmseg ;   1711    unsigned long shmseg ;
1712    unsigned long shmall ;   1712    unsigned long shmall ;
1713    unsigned long __unused1 ;   1713    unsigned long __unused1 ;
1714    unsigned long __unused2 ;   1714    unsigned long __unused2 ;
1715    unsigned long __unused3 ;   1715    unsigned long __unused3 ;
1716    unsigned long __unused4 ;   1716    unsigned long __unused4 ;
1717 };   1717 };
1718 struct vki_vm86_regs {   1718 struct vki_vm86_regs {
1719    long ebx ;   1719    long ebx ;
1720    long ecx ;   1720    long ecx ;
1721    long edx ;   1721    long edx ;
1722    long esi ;   1722    long esi ;
1723    long edi ;   1723    long edi ;
1724    long ebp ;   1724    long ebp ;
1725    long eax ;   1725    long eax ;
1726    long __null_ds ;   1726    long __null_ds ;
1727    long __null_es ;   1727    long __null_es ;
1728    long __null_fs ;   1728    long __null_fs ;
1729    long __null_gs ;   1729    long __null_gs ;
1730    long orig_eax ;   1730    long orig_eax ;
1731    long eip ;   1731    long eip ;
1732    unsigned short cs ;   1732    unsigned short cs ;
1733    unsigned short __csh ;   1733    unsigned short __csh ;
1734    long eflags ;   1734    long eflags ;
1735    long esp ;   1735    long esp ;
1736    unsigned short ss ;   1736    unsigned short ss ;
1737    unsigned short __ssh ;   1737    unsigned short __ssh ;
1738    unsigned short es ;   1738    unsigned short es ;
1739    unsigned short __esh ;   1739    unsigned short __esh ;
1740    unsigned short ds ;   1740    unsigned short ds ;
1741    unsigned short __dsh ;   1741    unsigned short __dsh ;
1742    unsigned short fs ;   1742    unsigned short fs ;
1743    unsigned short __fsh ;   1743    unsigned short __fsh ;
1744    unsigned short gs ;   1744    unsigned short gs ;
1745    unsigned short __gsh ;   1745    unsigned short __gsh ;
1746 };   1746 };
1747 struct vki_revectored_struct {   1747 struct vki_revectored_struct {
1748    unsigned long __map[8] ;   1748    unsigned long __map[8] ;
1749 };   1749 };
1750 struct vki_vm86_struct {   1750 struct vki_vm86_struct {
1751    struct vki_vm86_regs regs ;   1751    struct vki_vm86_regs regs ;
1752    unsigned long flags ;   1752    unsigned long flags ;
1753    unsigned long screen_bitmap ;   1753    unsigned long screen_bitmap ;
1754    unsigned long cpu_type ;   1754    unsigned long cpu_type ;
1755    struct vki_revectored_struct int_revectored ;   1755    struct vki_revectored_struct int_revectored ;
1756    struct vki_revectored_struct int21_revectored ;   1756    struct vki_revectored_struct int21_revectored ;
1757 };   1757 };
1758 struct vki_vm86plus_info_struct {   1758 struct vki_vm86plus_info_struct {
1759    unsigned long force_return_for_pic : 1 ;   1759    unsigned long force_return_for_pic : 1 ;
1760    unsigned long vm86dbg_active : 1 ;   1760    unsigned long vm86dbg_active : 1 ;
1761    unsigned long vm86dbg_TFpendig : 1 ;   1761    unsigned long vm86dbg_TFpendig : 1 ;
1762    unsigned long unused : 28 ;   1762    unsigned long unused : 28 ;
1763    unsigned long is_vm86pus : 1 ;   1763    unsigned long is_vm86pus : 1 ;
1764    unsigned char vm86dbg_intxxtab[32] ;   1764    unsigned char vm86dbg_intxxtab[32] ;
1765 };   1765 };
1766 struct vki_vm86plus_struct {   1766 struct vki_vm86plus_struct {
1767    struct vki_vm86_regs regs ;   1767    struct vki_vm86_regs regs ;
1768    unsigned long flags ;   1768    unsigned long flags ;
1769    unsigned long screen_bitmap ;   1769    unsigned long screen_bitmap ;
1770    unsigned long cpu_type ;   1770    unsigned long cpu_type ;
1771    struct vki_revectored_struct int_revectored ;   1771    struct vki_revectored_struct int_revectored ;
1772    struct vki_revectored_struct int21_revectored ;   1772    struct vki_revectored_struct int21_revectored ;
1773    struct vki_vm86plus_info_struct vm86plus ;   1773    struct vki_vm86plus_info_struct vm86plus ;
1774 };   1774 };
1775 typedef __vki_s32 vki_int32_t;   1775 typedef __vki_s32 vki_int32_t;
1776 typedef __vki_u8 vki_uint8_t;   1776 typedef __vki_u8 vki_uint8_t;
1777 typedef __vki_u16 vki_uint16_t;   1777 typedef __vki_u16 vki_uint16_t;
1778 typedef __vki_u32 vki_uint32_t;   1778 typedef __vki_u32 vki_uint32_t;
1779 struct vki_sysinfo {   1779 struct vki_sysinfo {
1780    long uptime ;   1780    long uptime ;
1781    unsigned long loads[3] ;   1781    unsigned long loads[3] ;
1782    unsigned long totalram ;   1782    unsigned long totalram ;
1783    unsigned long freeram ;   1783    unsigned long freeram ;
1784    unsigned long sharedram ;   1784    unsigned long sharedram ;
1785    unsigned long bufferram ;   1785    unsigned long bufferram ;
1786    unsigned long totalswap ;   1786    unsigned long totalswap ;
1787    unsigned long freeswap ;   1787    unsigned long freeswap ;
1788    unsigned short procs ;   1788    unsigned short procs ;
1789    unsigned short pad ;   1789    unsigned short pad ;
1790    unsigned long totalhigh ;   1790    unsigned long totalhigh ;
1791    unsigned long freehigh ;   1791    unsigned long freehigh ;
1792    unsigned int mem_unit ;   1792    unsigned int mem_unit ;
1793    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;   1793    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;
1794 };   1794 };
1795 struct vki_timespec {   1795 struct vki_timespec {
1796    vki_time_t tv_sec ;   1796    vki_time_t tv_sec ;
1797    long tv_nsec ;   1797    long tv_nsec ;
1798 };   1798 };
1799 struct vki_timeval {   1799 struct vki_timeval {
1800    vki_time_t tv_sec ;   1800    vki_time_t tv_sec ;
1801    vki_suseconds_t tv_usec ;   1801    vki_suseconds_t tv_usec ;
1802 };   1802 };
1803 struct vki_timezone {   1803 struct vki_timezone {
1804    int tz_minuteswest ;   1804    int tz_minuteswest ;
1805    int tz_dsttime ;   1805    int tz_dsttime ;
1806 };   1806 };
1807 struct vki_itimerspec {   1807 struct vki_itimerspec {
1808    struct vki_timespec it_interval ;   1808    struct vki_timespec it_interval ;
1809    struct vki_timespec it_value ;   1809    struct vki_timespec it_value ;
1810 };   1810 };
1811 struct vki_itimerval {   1811 struct vki_itimerval {
1812    struct vki_timeval it_interval ;   1812    struct vki_timeval it_interval ;
1813    struct vki_timeval it_value ;   1813    struct vki_timeval it_value ;
1814 };   1814 };
1815 struct vki_timex {   1815 struct vki_timex {
1816    unsigned int modes ;   1816    unsigned int modes ;
1817    long offset ;   1817    long offset ;
1818    long freq ;   1818    long freq ;
1819    long maxerror ;   1819    long maxerror ;
1820    long esterror ;   1820    long esterror ;
1821    int status ;   1821    int status ;
1822    long constant ;   1822    long constant ;
1823    long precision ;   1823    long precision ;
1824    long tolerance ;   1824    long tolerance ;
1825    struct vki_timeval time ;   1825    struct vki_timeval time ;
1826    long tick ;   1826    long tick ;
1827    long ppsfreq ;   1827    long ppsfreq ;
1828    long jitter ;   1828    long jitter ;
1829    int shift ;   1829    int shift ;
1830    long stabil ;   1830    long stabil ;
1831    long jitcnt ;   1831    long jitcnt ;
1832    long calcnt ;   1832    long calcnt ;
1833    long errcnt ;   1833    long errcnt ;
1834    long stbcnt ;   1834    long stbcnt ;
1835    int  : 32 ;   1835    int  : 32 ;
1836    int  : 32 ;   1836    int  : 32 ;
1837    int  : 32 ;   1837    int  : 32 ;
1838    int  : 32 ;   1838    int  : 32 ;
1839    int  : 32 ;   1839    int  : 32 ;
1840    int  : 32 ;   1840    int  : 32 ;
1841    int  : 32 ;   1841    int  : 32 ;
1842    int  : 32 ;   1842    int  : 32 ;
1843    int  : 32 ;   1843    int  : 32 ;
1844    int  : 32 ;   1844    int  : 32 ;
1845    int  : 32 ;   1845    int  : 32 ;
1846    int  : 32 ;   1846    int  : 32 ;
1847 };   1847 };
1848 struct vki_tms {   1848 struct vki_tms {
1849    vki_clock_t tms_utime ;   1849    vki_clock_t tms_utime ;
1850    vki_clock_t tms_stime ;   1850    vki_clock_t tms_stime ;
1851    vki_clock_t tms_cutime ;   1851    vki_clock_t tms_cutime ;
1852    vki_clock_t tms_cstime ;   1852    vki_clock_t tms_cstime ;
1853 };   1853 };
1854 struct vki_utimbuf {   1854 struct vki_utimbuf {
1855    vki_time_t actime ;   1855    vki_time_t actime ;
1856    vki_time_t modtime ;   1856    vki_time_t modtime ;
1857 };   1857 };
1858 struct vki_sched_param {   1858 struct vki_sched_param {
1859    int sched_priority ;   1859    int sched_priority ;
1860 };   1860 };
1861 union vki_sigval {   1861 union vki_sigval {
1862    int sival_int ;   1862    int sival_int ;
1863    void *sival_ptr ;   1863    void *sival_ptr ;
1864 };   1864 };
1865 typedef union vki_sigval vki_sigval_t;   1865 typedef union vki_sigval vki_sigval_t;
1866 struct __anonstruct__kill_76 {   1866 struct __anonstruct__kill_76 {
1867    vki_pid_t _pid ;   1867    vki_pid_t _pid ;
1868    vki_uid_t _uid ;   1868    vki_uid_t _uid ;
1869 };   1869 };
1870 struct __anonstruct__timer_77 {   1870 struct __anonstruct__timer_77 {
1871    vki_timer_t _tid ;   1871    vki_timer_t _tid ;
1872    int _overrun ;   1872    int _overrun ;
1873    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;   1873    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;
1874    vki_sigval_t _sigval ;   1874    vki_sigval_t _sigval ;
1875    int _sys_private ;   1875    int _sys_private ;
1876 };   1876 };
1877 struct __anonstruct__rt_78 {   1877 struct __anonstruct__rt_78 {
1878    vki_pid_t _pid ;   1878    vki_pid_t _pid ;
1879    vki_uid_t _uid ;   1879    vki_uid_t _uid ;
1880    vki_sigval_t _sigval ;   1880    vki_sigval_t _sigval ;
1881 };   1881 };
1882 struct __anonstruct__sigchld_79 {   1882 struct __anonstruct__sigchld_79 {
1883    vki_pid_t _pid ;   1883    vki_pid_t _pid ;
1884    vki_uid_t _uid ;   1884    vki_uid_t _uid ;
1885    int _status ;   1885    int _status ;
1886    vki_clock_t _utime ;   1886    vki_clock_t _utime ;
1887    vki_clock_t _stime ;   1887    vki_clock_t _stime ;
1888 };   1888 };
1889 struct __anonstruct__sigfault_80 {   1889 struct __anonstruct__sigfault_80 {
1890    void *_addr ;   1890    void *_addr ;
1891 };   1891 };
1892 struct __anonstruct__sigpoll_81 {   1892 struct __anonstruct__sigpoll_81 {
1893    long _band ;   1893    long _band ;
1894    int _fd ;   1894    int _fd ;
1895 };   1895 };
1896 union __anonunion__sifields_75 {   1896 union __anonunion__sifields_75 {
1897    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;   1897    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;
1898    struct __anonstruct__kill_76 _kill ;   1898    struct __anonstruct__kill_76 _kill ;
1899    struct __anonstruct__timer_77 _timer ;   1899    struct __anonstruct__timer_77 _timer ;
1900    struct __anonstruct__rt_78 _rt ;   1900    struct __anonstruct__rt_78 _rt ;
1901    struct __anonstruct__sigchld_79 _sigchld ;   1901    struct __anonstruct__sigchld_79 _sigchld ;
1902    struct __anonstruct__sigfault_80 _sigfault ;   1902    struct __anonstruct__sigfault_80 _sigfault ;
1903    struct __anonstruct__sigpoll_81 _sigpoll ;   1903    struct __anonstruct__sigpoll_81 _sigpoll ;
1904 };   1904 };
1905 struct vki_siginfo {   1905 struct vki_siginfo {
1906    int si_signo ;   1906    int si_signo ;
1907    int si_errno ;   1907    int si_errno ;
1908    int si_code ;   1908    int si_code ;
1909    union __anonunion__sifields_75 _sifields ;   1909    union __anonunion__sifields_75 _sifields ;
1910 };   1910 };
1911 typedef struct vki_siginfo vki_siginfo_t;   1911 typedef struct vki_siginfo vki_siginfo_t;
1912 struct __anonstruct__sigev_thread_83 {   1912 struct __anonstruct__sigev_thread_83 {
1913    void (*_function)(vki_sigval_t  ) ;   1913    void (*_function)(vki_sigval_t  ) ;
1914    void *_attribute ;   1914    void *_attribute ;
1915 };   1915 };
1916 union __anonunion__sigev_un_82 {   1916 union __anonunion__sigev_un_82 {
1917    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;   1917    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;
1918    int _tid ;   1918    int _tid ;
1919    struct __anonstruct__sigev_thread_83 _sigev_thread ;   1919    struct __anonstruct__sigev_thread_83 _sigev_thread ;
1920 };   1920 };
1921 struct vki_sigevent {   1921 struct vki_sigevent {
1922    vki_sigval_t sigev_value ;   1922    vki_sigval_t sigev_value ;
1923    int sigev_signo ;   1923    int sigev_signo ;
1924    int sigev_notify ;   1924    int sigev_notify ;
1925    union __anonunion__sigev_un_82 _sigev_un ;   1925    union __anonunion__sigev_un_82 _sigev_un ;
1926 };   1926 };
1927 typedef struct vki_sigevent vki_sigevent_t;   1927 typedef struct vki_sigevent vki_sigevent_t;
1928 enum vki_sock_type {   1928 enum vki_sock_type {
1929     VKI_SOCK_STREAM = 1   1929     VKI_SOCK_STREAM = 1
1930 } ;   1930 } ;
1931 struct vki_iovec {   1931 struct vki_iovec {
1932    void *iov_base ;   1932    void *iov_base ;
1933    __vki_kernel_size_t iov_len ;   1933    __vki_kernel_size_t iov_len ;
1934 };   1934 };
1935 typedef unsigned short vki_sa_family_t;   1935 typedef unsigned short vki_sa_family_t;
1936 struct vki_sockaddr {   1936 struct vki_sockaddr {
1937    vki_sa_family_t sa_family ;   1937    vki_sa_family_t sa_family ;
1938    char sa_data[14] ;   1938    char sa_data[14] ;
1939 };   1939 };
1940 struct vki_msghdr {   1940 struct vki_msghdr {
1941    void *msg_name ;   1941    void *msg_name ;
1942    int msg_namelen ;   1942    int msg_namelen ;
1943    struct vki_iovec *msg_iov ;   1943    struct vki_iovec *msg_iov ;
1944    __vki_kernel_size_t msg_iovlen ;   1944    __vki_kernel_size_t msg_iovlen ;
1945    void *msg_control ;   1945    void *msg_control ;
1946    __vki_kernel_size_t msg_controllen ;   1946    __vki_kernel_size_t msg_controllen ;
1947    unsigned int msg_flags ;   1947    unsigned int msg_flags ;
1948 };   1948 };
1949 struct vki_cmsghdr {   1949 struct vki_cmsghdr {
1950    __vki_kernel_size_t cmsg_len ;   1950    __vki_kernel_size_t cmsg_len ;
1951    int cmsg_level ;   1951    int cmsg_level ;
1952    int cmsg_type ;   1952    int cmsg_type ;
1953 };   1953 };
1954 struct vki_in_addr {   1954 struct vki_in_addr {
1955    __vki_u32 s_addr ;   1955    __vki_u32 s_addr ;
1956 };   1956 };
1957 struct vki_sockaddr_in {   1957 struct vki_sockaddr_in {
1958    vki_sa_family_t sin_family ;   1958    vki_sa_family_t sin_family ;
1959    unsigned short sin_port ;   1959    unsigned short sin_port ;
1960    struct vki_in_addr sin_addr ;   1960    struct vki_in_addr sin_addr ;
1961    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;   1961    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;
1962 };   1962 };
1963 union __anonunion_vki_in6_u_84 {   1963 union __anonunion_vki_in6_u_84 {
1964    __vki_u8 u6_addr8[16] ;   1964    __vki_u8 u6_addr8[16] ;
1965    __vki_u16 u6_addr16[8] ;   1965    __vki_u16 u6_addr16[8] ;
1966    __vki_u32 u6_addr32[4] ;   1966    __vki_u32 u6_addr32[4] ;
1967 };   1967 };
1968 struct vki_in6_addr {   1968 struct vki_in6_addr {
1969    union __anonunion_vki_in6_u_84 vki_in6_u ;   1969    union __anonunion_vki_in6_u_84 vki_in6_u ;
1970 };   1970 };
1971 struct vki_sockaddr_in6 {   1971 struct vki_sockaddr_in6 {
1972    unsigned short sin6_family ;   1972    unsigned short sin6_family ;
1973    __vki_u16 sin6_port ;   1973    __vki_u16 sin6_port ;
1974    __vki_u32 sin6_flowinfo ;   1974    __vki_u32 sin6_flowinfo ;
1975    struct vki_in6_addr sin6_addr ;   1975    struct vki_in6_addr sin6_addr ;
1976    __vki_u32 sin6_scope_id ;   1976    __vki_u32 sin6_scope_id ;
1977 };   1977 };
1978 struct vki_sockaddr_un {   1978 struct vki_sockaddr_un {
1979    vki_sa_family_t sun_family ;   1979    vki_sa_family_t sun_family ;
1980    char sun_path[108] ;   1980    char sun_path[108] ;
1981 };   1981 };
1982 struct vki_ifmap {   1982 struct vki_ifmap {
1983    unsigned long mem_start ;   1983    unsigned long mem_start ;
1984    unsigned long mem_end ;   1984    unsigned long mem_end ;
1985    unsigned short base_addr ;   1985    unsigned short base_addr ;
1986    unsigned char irq ;   1986    unsigned char irq ;
1987    unsigned char dma ;   1987    unsigned char dma ;
1988    unsigned char port ;   1988    unsigned char port ;
1989 };   1989 };
1990 union __anonunion_ifs_ifsu_85 {   1990 union __anonunion_ifs_ifsu_85 {
1991    void *raw_hdlc ;   1991    void *raw_hdlc ;
1992    void *cisco ;   1992    void *cisco ;
1993    void *fr ;   1993    void *fr ;
1994    void *fr_pvc ;   1994    void *fr_pvc ;
1995    void *fr_pvc_info ;   1995    void *fr_pvc_info ;
1996    void *sync ;   1996    void *sync ;
1997    void *te1 ;   1997    void *te1 ;
1998 };   1998 };
1999 struct vki_if_settings {   1999 struct vki_if_settings {
2000    unsigned int type ;   2000    unsigned int type ;
2001    unsigned int size ;   2001    unsigned int size ;
2002    union __anonunion_ifs_ifsu_85 ifs_ifsu ;   2002    union __anonunion_ifs_ifsu_85 ifs_ifsu ;
2003 };   2003 };
2004 union __anonunion_ifr_ifrn_86 {   2004 union __anonunion_ifr_ifrn_86 {
2005    char ifrn_name[16] ;   2005    char ifrn_name[16] ;
2006 };   2006 };
2007 union __anonunion_ifr_ifru_87 {   2007 union __anonunion_ifr_ifru_87 {
2008    struct vki_sockaddr ifru_addr ;   2008    struct vki_sockaddr ifru_addr ;
2009    struct vki_sockaddr ifru_dstaddr ;   2009    struct vki_sockaddr ifru_dstaddr ;
2010    struct vki_sockaddr ifru_broadaddr ;   2010    struct vki_sockaddr ifru_broadaddr ;
2011    struct vki_sockaddr ifru_netmask ;   2011    struct vki_sockaddr ifru_netmask ;
2012    struct vki_sockaddr ifru_hwaddr ;   2012    struct vki_sockaddr ifru_hwaddr ;
2013    short ifru_flags ;   2013    short ifru_flags ;
2014    int ifru_ivalue ;   2014    int ifru_ivalue ;
2015    int ifru_mtu ;   2015    int ifru_mtu ;
2016    struct vki_ifmap ifru_map ;   2016    struct vki_ifmap ifru_map ;
2017    char ifru_slave[16] ;   2017    char ifru_slave[16] ;
2018    char ifru_newname[16] ;   2018    char ifru_newname[16] ;
2019    void *ifru_data ;   2019    void *ifru_data ;
2020    struct vki_if_settings ifru_settings ;   2020    struct vki_if_settings ifru_settings ;
2021 };   2021 };
2022 struct vki_ifreq {   2022 struct vki_ifreq {
2023    union __anonunion_ifr_ifrn_86 ifr_ifrn ;   2023    union __anonunion_ifr_ifrn_86 ifr_ifrn ;
2024    union __anonunion_ifr_ifru_87 ifr_ifru ;   2024    union __anonunion_ifr_ifru_87 ifr_ifru ;
2025 };   2025 };
2026 union __anonunion_ifc_ifcu_88 {   2026 union __anonunion_ifc_ifcu_88 {
2027    char *ifcu_buf ;   2027    char *ifcu_buf ;
2028    struct vki_ifreq *ifcu_req ;   2028    struct vki_ifreq *ifcu_req ;
2029 };   2029 };
2030 struct vki_ifconf {   2030 struct vki_ifconf {
2031    int ifc_len ;   2031    int ifc_len ;
2032    union __anonunion_ifc_ifcu_88 ifc_ifcu ;   2032    union __anonunion_ifc_ifcu_88 ifc_ifcu ;
2033 };   2033 };
2034 struct vki_arpreq {   2034 struct vki_arpreq {
2035    struct vki_sockaddr arp_pa ;   2035    struct vki_sockaddr arp_pa ;
2036    struct vki_sockaddr arp_ha ;   2036    struct vki_sockaddr arp_ha ;
2037    int arp_flags ;   2037    int arp_flags ;
2038    struct vki_sockaddr arp_netmask ;   2038    struct vki_sockaddr arp_netmask ;
2039    char arp_dev[16] ;   2039    char arp_dev[16] ;
2040 };   2040 };
2041 struct vki_rtentry {   2041 struct vki_rtentry {
2042    unsigned long rt_pad1 ;   2042    unsigned long rt_pad1 ;
2043    struct vki_sockaddr rt_dst ;   2043    struct vki_sockaddr rt_dst ;
2044    struct vki_sockaddr rt_gateway ;   2044    struct vki_sockaddr rt_gateway ;
2045    struct vki_sockaddr rt_genmask ;   2045    struct vki_sockaddr rt_genmask ;
2046    unsigned short rt_flags ;   2046    unsigned short rt_flags ;
2047    short rt_pad2 ;   2047    short rt_pad2 ;
2048    unsigned long rt_pad3 ;   2048    unsigned long rt_pad3 ;
2049    void *rt_pad4 ;   2049    void *rt_pad4 ;
2050    short rt_metric ;   2050    short rt_metric ;
2051    char *rt_dev ;   2051    char *rt_dev ;
2052    unsigned long rt_mtu ;   2052    unsigned long rt_mtu ;
2053    unsigned long rt_window ;   2053    unsigned long rt_window ;
2054    unsigned short rt_irtt ;   2054    unsigned short rt_irtt ;
2055 };   2055 };
2056 typedef __vki_s32 vki_sctp_assoc_t;   2056 typedef __vki_s32 vki_sctp_assoc_t;
2057 enum vki_sctp_optname {   2057 enum vki_sctp_optname {
2058     VKI_SCTP_RTOINFO = 0,   2058     VKI_SCTP_RTOINFO = 0,
2059     VKI_SCTP_ASSOCINFO = 1,   2059     VKI_SCTP_ASSOCINFO = 1,
2060     VKI_SCTP_INITMSG = 2,   2060     VKI_SCTP_INITMSG = 2,
2061     VKI_SCTP_NODELAY = 3,   2061     VKI_SCTP_NODELAY = 3,
2062     VKI_SCTP_AUTOCLOSE = 4,   2062     VKI_SCTP_AUTOCLOSE = 4,
2063     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,   2063     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,
2064     VKI_SCTP_PRIMARY_ADDR = 6,   2064     VKI_SCTP_PRIMARY_ADDR = 6,
2065     VKI_SCTP_ADAPTION_LAYER = 7,   2065     VKI_SCTP_ADAPTION_LAYER = 7,
2066     VKI_SCTP_DISABLE_FRAGMENTS = 8,   2066     VKI_SCTP_DISABLE_FRAGMENTS = 8,
2067     VKI_SCTP_PEER_ADDR_PARAMS = 9,   2067     VKI_SCTP_PEER_ADDR_PARAMS = 9,
2068     VKI_SCTP_DEFAULT_SEND_PARAM = 10,   2068     VKI_SCTP_DEFAULT_SEND_PARAM = 10,
2069     VKI_SCTP_EVENTS = 11,   2069     VKI_SCTP_EVENTS = 11,
2070     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,   2070     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,
2071     VKI_SCTP_MAXSEG = 13,   2071     VKI_SCTP_MAXSEG = 13,
2072     VKI_SCTP_STATUS = 14,   2072     VKI_SCTP_STATUS = 14,
2073     VKI_SCTP_GET_PEER_ADDR_INFO = 15,   2073     VKI_SCTP_GET_PEER_ADDR_INFO = 15,
2074     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,   2074     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,
2075     VKI_SCTP_SOCKOPT_BINDX_REM = 101,   2075     VKI_SCTP_SOCKOPT_BINDX_REM = 101,
2076     VKI_SCTP_SOCKOPT_PEELOFF = 102,   2076     VKI_SCTP_SOCKOPT_PEELOFF = 102,
2077     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,   2077     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,
2078     VKI_SCTP_GET_PEER_ADDRS = 104,   2078     VKI_SCTP_GET_PEER_ADDRS = 104,
2079     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,   2079     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,
2080     VKI_SCTP_GET_LOCAL_ADDRS = 106,   2080     VKI_SCTP_GET_LOCAL_ADDRS = 106,
2081     VKI_SCTP_SOCKOPT_CONNECTX = 107   2081     VKI_SCTP_SOCKOPT_CONNECTX = 107
2082 } ;   2082 } ;
2083 struct vki_sctp_getaddrs {   2083 struct vki_sctp_getaddrs {
2084    vki_sctp_assoc_t assoc_id ;   2084    vki_sctp_assoc_t assoc_id ;
2085    int addr_num ;   2085    int addr_num ;
2086    struct vki_sockaddr *addrs ;   2086    struct vki_sockaddr *addrs ;
2087 };   2087 };
2088 struct vki_rusage {   2088 struct vki_rusage {
2089    struct vki_timeval ru_utime ;   2089    struct vki_timeval ru_utime ;
2090    struct vki_timeval ru_stime ;   2090    struct vki_timeval ru_stime ;
2091    long ru_maxrss ;   2091    long ru_maxrss ;
2092    long ru_ixrss ;   2092    long ru_ixrss ;
2093    long ru_idrss ;   2093    long ru_idrss ;
2094    long ru_isrss ;   2094    long ru_isrss ;
2095    long ru_minflt ;   2095    long ru_minflt ;
2096    long ru_majflt ;   2096    long ru_majflt ;
2097    long ru_nswap ;   2097    long ru_nswap ;
2098    long ru_inblock ;   2098    long ru_inblock ;
2099    long ru_oublock ;   2099    long ru_oublock ;
2100    long ru_msgsnd ;   2100    long ru_msgsnd ;
2101    long ru_msgrcv ;   2101    long ru_msgrcv ;
2102    long ru_nsignals ;   2102    long ru_nsignals ;
2103    long ru_nvcsw ;   2103    long ru_nvcsw ;
2104    long ru_nivcsw ;   2104    long ru_nivcsw ;
2105 };   2105 };
2106 struct vki_rlimit {   2106 struct vki_rlimit {
2107    unsigned long rlim_cur ;   2107    unsigned long rlim_cur ;
2108    unsigned long rlim_max ;   2108    unsigned long rlim_max ;
2109 };   2109 };
2110 struct vki_elf_siginfo {   2110 struct vki_elf_siginfo {
2111    int si_signo ;   2111    int si_signo ;
2112    int si_code ;   2112    int si_code ;
2113    int si_errno ;   2113    int si_errno ;
2114 };   2114 };
2115 struct vki_elf_prstatus {   2115 struct vki_elf_prstatus {
2116    struct vki_elf_siginfo pr_info ;   2116    struct vki_elf_siginfo pr_info ;
2117    short pr_cursig ;   2117    short pr_cursig ;
2118    unsigned long pr_sigpend ;   2118    unsigned long pr_sigpend ;
2119    unsigned long pr_sighold ;   2119    unsigned long pr_sighold ;
2120    vki_pid_t pr_pid ;   2120    vki_pid_t pr_pid ;
2121    vki_pid_t pr_ppid ;   2121    vki_pid_t pr_ppid ;
2122    vki_pid_t pr_pgrp ;   2122    vki_pid_t pr_pgrp ;
2123    vki_pid_t pr_sid ;   2123    vki_pid_t pr_sid ;
2124    struct vki_timeval pr_utime ;   2124    struct vki_timeval pr_utime ;
2125    struct vki_timeval pr_stime ;   2125    struct vki_timeval pr_stime ;
2126    struct vki_timeval pr_cutime ;   2126    struct vki_timeval pr_cutime ;
2127    struct vki_timeval pr_cstime ;   2127    struct vki_timeval pr_cstime ;
2128    vki_elf_gregset_t pr_reg ;   2128    vki_elf_gregset_t pr_reg ;
2129    int pr_fpvalid ;   2129    int pr_fpvalid ;
2130 };   2130 };
2131 struct vki_elf_prpsinfo {   2131 struct vki_elf_prpsinfo {
2132    char pr_state ;   2132    char pr_state ;
2133    char pr_sname ;   2133    char pr_sname ;
2134    char pr_zomb ;   2134    char pr_zomb ;
2135    char pr_nice ;   2135    char pr_nice ;
2136    unsigned long pr_flag ;   2136    unsigned long pr_flag ;
2137    __vki_kernel_uid_t pr_uid ;   2137    __vki_kernel_uid_t pr_uid ;
2138    __vki_kernel_gid_t pr_gid ;   2138    __vki_kernel_gid_t pr_gid ;
2139    vki_pid_t pr_pid ;   2139    vki_pid_t pr_pid ;
2140    vki_pid_t pr_ppid ;   2140    vki_pid_t pr_ppid ;
2141    vki_pid_t pr_pgrp ;   2141    vki_pid_t pr_pgrp ;
2142    vki_pid_t pr_sid ;   2142    vki_pid_t pr_sid ;
2143    char pr_fname[16] ;   2143    char pr_fname[16] ;
2144    char pr_psargs[80] ;   2144    char pr_psargs[80] ;
2145 };   2145 };
2146 struct vki_epoll_event {   2146 struct vki_epoll_event {
2147    __vki_u32 events ;   2147    __vki_u32 events ;
2148    __vki_u64 data ;   2148    __vki_u64 data ;
2149 };   2149 };
2150 struct vki_mq_attr {   2150 struct vki_mq_attr {
2151    long mq_flags ;   2151    long mq_flags ;
2152    long mq_maxmsg ;   2152    long mq_maxmsg ;
2153    long mq_msgsize ;   2153    long mq_msgsize ;
2154    long mq_curmsgs ;   2154    long mq_curmsgs ;
2155    long __reserved[4] ;   2155    long __reserved[4] ;
2156 };   2156 };
2157 struct vki_new_utsname {   2157 struct vki_new_utsname {
2158    char sysname[65] ;   2158    char sysname[65] ;
2159    char nodename[65] ;   2159    char nodename[65] ;
2160    char release[65] ;   2160    char release[65] ;
2161    char version[65] ;   2161    char version[65] ;
2162    char machine[65] ;   2162    char machine[65] ;
2163    char domainname[65] ;   2163    char domainname[65] ;
2164 };   2164 };
2165 struct vki_mii_ioctl_data {   2165 struct vki_mii_ioctl_data {
2166    vki_u16 phy_id ;   2166    vki_u16 phy_id ;
2167    vki_u16 reg_num ;   2167    vki_u16 reg_num ;
2168    vki_u16 val_in ;   2168    vki_u16 val_in ;
2169    vki_u16 val_out ;   2169    vki_u16 val_out ;
2170 };   2170 };
2171 struct __vki_user_cap_header_struct {   2171 struct __vki_user_cap_header_struct {
2172    __vki_u32 version ;   2172    __vki_u32 version ;
2173    int pid ;   2173    int pid ;
2174 };   2174 };
2175 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;   2175 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;
2176 struct __vki_user_cap_data_struct {   2176 struct __vki_user_cap_data_struct {
2177    __vki_u32 effective ;   2177    __vki_u32 effective ;
2178    __vki_u32 permitted ;   2178    __vki_u32 permitted ;
2179    __vki_u32 inheritable ;   2179    __vki_u32 inheritable ;
2180 };   2180 };
2181 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;   2181 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;
2182 struct vki_ipc_perm {   2182 struct vki_ipc_perm {
2183    __vki_kernel_key_t key ;   2183    __vki_kernel_key_t key ;
2184    __vki_kernel_uid_t uid ;   2184    __vki_kernel_uid_t uid ;
2185    __vki_kernel_gid_t gid ;   2185    __vki_kernel_gid_t gid ;
2186    __vki_kernel_uid_t cuid ;   2186    __vki_kernel_uid_t cuid ;
2187    __vki_kernel_gid_t cgid ;   2187    __vki_kernel_gid_t cgid ;
2188    __vki_kernel_mode_t mode ;   2188    __vki_kernel_mode_t mode ;
2189    unsigned short seq ;   2189    unsigned short seq ;
2190 };   2190 };
2191 struct vki_semid_ds {   2191 struct vki_semid_ds {
2192    struct vki_ipc_perm sem_perm ;   2192    struct vki_ipc_perm sem_perm ;
2193    __vki_kernel_time_t sem_otime ;   2193    __vki_kernel_time_t sem_otime ;
2194    __vki_kernel_time_t sem_ctime ;   2194    __vki_kernel_time_t sem_ctime ;
2195    void *sem_base ;   2195    void *sem_base ;
2196    void *sem_pending ;   2196    void *sem_pending ;
2197    void **sem_pending_last ;   2197    void **sem_pending_last ;
2198    void *undo ;   2198    void *undo ;
2199    unsigned short sem_nsems ;   2199    unsigned short sem_nsems ;
2200 };   2200 };
2201 struct vki_sembuf {   2201 struct vki_sembuf {
2202    unsigned short sem_num ;   2202    unsigned short sem_num ;
2203    short sem_op ;   2203    short sem_op ;
2204    short sem_flg ;   2204    short sem_flg ;
2205 };   2205 };
2206 struct vki_seminfo;   2206 struct vki_seminfo;
2207 union vki_semun {   2207 union vki_semun {
2208    int val ;   2208    int val ;
2209    struct vki_semid_ds *buf ;   2209    struct vki_semid_ds *buf ;
2210    unsigned short *array ;   2210    unsigned short *array ;
2211    struct vki_seminfo *__buf ;   2211    struct vki_seminfo *__buf ;
2212    void *__pad ;   2212    void *__pad ;
2213 };   2213 };
2214 struct vki_seminfo {   2214 struct vki_seminfo {
2215    int semmap ;   2215    int semmap ;
2216    int semmni ;   2216    int semmni ;
2217    int semmns ;   2217    int semmns ;
2218    int semmnu ;   2218    int semmnu ;
2219    int semmsl ;   2219    int semmsl ;
2220    int semopm ;   2220    int semopm ;
2221    int semume ;   2221    int semume ;
2222    int semusz ;   2222    int semusz ;
2223    int semvmx ;   2223    int semvmx ;
2224    int semaem ;   2224    int semaem ;
2225 };   2225 };
2226 struct vki_robust_list {   2226 struct vki_robust_list {
2227    struct vki_robust_list *next ;   2227    struct vki_robust_list *next ;
2228 };   2228 };
2229 struct vki_robust_list_head {   2229 struct vki_robust_list_head {
2230    struct vki_robust_list list ;   2230    struct vki_robust_list list ;
2231    long futex_offset ;   2231    long futex_offset ;
2232    struct vki_robust_list *list_op_pending ;   2232    struct vki_robust_list *list_op_pending ;
2233 };   2233 };
2234 struct vki_dirent {   2234 struct vki_dirent {
2235    long d_ino ;   2235    long d_ino ;
2236    __vki_kernel_off_t d_off ;   2236    __vki_kernel_off_t d_off ;
2237    unsigned short d_reclen ;   2237    unsigned short d_reclen ;
2238    char d_name[256] ;   2238    char d_name[256] ;
2239 };   2239 };
2240 struct __vki_sysctl_args {   2240 struct __vki_sysctl_args {
2241    int *name ;   2241    int *name ;
2242    int nlen ;   2242    int nlen ;
2243    void *oldval ;   2243    void *oldval ;
2244    vki_size_t *oldlenp ;   2244    vki_size_t *oldlenp ;
2245    void *newval ;   2245    void *newval ;
2246    vki_size_t newlen ;   2246    vki_size_t newlen ;
2247    unsigned long __unused[4] ;   2247    unsigned long __unused[4] ;
2248 };   2248 };
2249 typedef unsigned long vki_aio_context_t;   2249 typedef unsigned long vki_aio_context_t;
2250 enum __anonenum_89 {   2250 enum __anonenum_89 {
2251     VKI_IOCB_CMD_PREAD = 0,   2251     VKI_IOCB_CMD_PREAD = 0,
2252     VKI_IOCB_CMD_PWRITE = 1,   2252     VKI_IOCB_CMD_PWRITE = 1,
2253     VKI_IOCB_CMD_FSYNC = 2,   2253     VKI_IOCB_CMD_FSYNC = 2,
2254     VKI_IOCB_CMD_FDSYNC = 3,   2254     VKI_IOCB_CMD_FDSYNC = 3,
2255     VKI_IOCB_CMD_PREADV = 7,   2255     VKI_IOCB_CMD_PREADV = 7,
2256     VKI_IOCB_CMD_PWRITEV = 8   2256     VKI_IOCB_CMD_PWRITEV = 8
2257 } ;   2257 } ;
2258 struct vki_io_event {   2258 struct vki_io_event {
2259    __vki_u64 data ;   2259    __vki_u64 data ;
2260    __vki_u64 obj ;   2260    __vki_u64 obj ;
2261    __vki_s64 result ;   2261    __vki_s64 result ;
2262    __vki_s64 result2 ;   2262    __vki_s64 result2 ;
2263 };   2263 };
2264 struct vki_iocb {   2264 struct vki_iocb {
2265    __vki_u64 aio_data ;   2265    __vki_u64 aio_data ;
2266    __vki_u32 aio_key ;   2266    __vki_u32 aio_key ;
2267    __vki_u32 aio_reserved1 ;   2267    __vki_u32 aio_reserved1 ;
2268    __vki_u16 aio_lio_opcode ;   2268    __vki_u16 aio_lio_opcode ;
2269    __vki_s16 aio_reqprio ;   2269    __vki_s16 aio_reqprio ;
2270    __vki_u32 aio_fildes ;   2270    __vki_u32 aio_fildes ;
2271    __vki_u64 aio_buf ;   2271    __vki_u64 aio_buf ;
2272    __vki_u64 aio_nbytes ;   2272    __vki_u64 aio_nbytes ;
2273    __vki_s64 aio_offset ;   2273    __vki_s64 aio_offset ;
2274    __vki_u64 aio_reserved2 ;   2274    __vki_u64 aio_reserved2 ;
2275    __vki_u64 aio_reserved3 ;   2275    __vki_u64 aio_reserved3 ;
2276 };   2276 };
2277 struct vki_aio_ring {   2277 struct vki_aio_ring {
2278    unsigned int id ;   2278    unsigned int id ;
2279    unsigned int nr ;   2279    unsigned int nr ;
2280    unsigned int head ;   2280    unsigned int head ;
2281    unsigned int tail ;   2281    unsigned int tail ;
2282    unsigned int magic ;   2282    unsigned int magic ;
2283    unsigned int compat_features ;   2283    unsigned int compat_features ;
2284    unsigned int incompat_features ;   2284    unsigned int incompat_features ;
2285    unsigned int header_length ;   2285    unsigned int header_length ;
2286    struct vki_io_event io_events[0] ;   2286    struct vki_io_event io_events[0] ;
2287 };   2287 };
2288 struct vki_msg;   2288 struct vki_msg;
2289 struct vki_msqid_ds {   2289 struct vki_msqid_ds {
2290    struct vki_ipc_perm msg_perm ;   2290    struct vki_ipc_perm msg_perm ;
2291    struct vki_msg *msg_first ;   2291    struct vki_msg *msg_first ;
2292    struct vki_msg *msg_last ;   2292    struct vki_msg *msg_last ;
2293    __vki_kernel_time_t msg_stime ;   2293    __vki_kernel_time_t msg_stime ;
2294    __vki_kernel_time_t msg_rtime ;   2294    __vki_kernel_time_t msg_rtime ;
2295    __vki_kernel_time_t msg_ctime ;   2295    __vki_kernel_time_t msg_ctime ;
2296    unsigned long msg_lcbytes ;   2296    unsigned long msg_lcbytes ;
2297    unsigned long msg_lqbytes ;   2297    unsigned long msg_lqbytes ;
2298    unsigned short msg_cbytes ;   2298    unsigned short msg_cbytes ;
2299    unsigned short msg_qnum ;   2299    unsigned short msg_qnum ;
2300    unsigned short msg_qbytes ;   2300    unsigned short msg_qbytes ;
2301    __vki_kernel_ipc_pid_t msg_lspid ;   2301    __vki_kernel_ipc_pid_t msg_lspid ;
2302    __vki_kernel_ipc_pid_t msg_lrpid ;   2302    __vki_kernel_ipc_pid_t msg_lrpid ;
2303 };   2303 };
2304 struct vki_msgbuf {   2304 struct vki_msgbuf {
2305    long mtype ;   2305    long mtype ;
2306    char mtext[1] ;   2306    char mtext[1] ;
2307 };   2307 };
2308 struct vki_msginfo {   2308 struct vki_msginfo {
2309    int msgpool ;   2309    int msgpool ;
2310    int msgmap ;   2310    int msgmap ;
2311    int msgmax ;   2311    int msgmax ;
2312    int msgmnb ;   2312    int msgmnb ;
2313    int msgmni ;   2313    int msgmni ;
2314    int msgssz ;   2314    int msgssz ;
2315    int msgtql ;   2315    int msgtql ;
2316    unsigned short msgseg ;   2316    unsigned short msgseg ;
2317 };   2317 };
2318 struct vki_shmid_ds {   2318 struct vki_shmid_ds {
2319    struct vki_ipc_perm shm_perm ;   2319    struct vki_ipc_perm shm_perm ;
2320    int shm_segsz ;   2320    int shm_segsz ;
2321    __vki_kernel_time_t shm_atime ;   2321    __vki_kernel_time_t shm_atime ;
2322    __vki_kernel_time_t shm_dtime ;   2322    __vki_kernel_time_t shm_dtime ;
2323    __vki_kernel_time_t shm_ctime ;   2323    __vki_kernel_time_t shm_ctime ;
2324    __vki_kernel_ipc_pid_t shm_cpid ;   2324    __vki_kernel_ipc_pid_t shm_cpid ;
2325    __vki_kernel_ipc_pid_t shm_lpid ;   2325    __vki_kernel_ipc_pid_t shm_lpid ;
2326    unsigned short shm_nattch ;   2326    unsigned short shm_nattch ;
2327    unsigned short shm_unused ;   2327    unsigned short shm_unused ;
2328    void *shm_unused2 ;   2328    void *shm_unused2 ;
2329    void *shm_unused3 ;   2329    void *shm_unused3 ;
2330 };   2330 };
2331 struct vki_shminfo {   2331 struct vki_shminfo {
2332    int shmmax ;   2332    int shmmax ;
2333    int shmmin ;   2333    int shmmin ;
2334    int shmmni ;   2334    int shmmni ;
2335    int shmseg ;   2335    int shmseg ;
2336    int shmall ;   2336    int shmall ;
2337 };   2337 };
2338 struct vki_shm_info {   2338 struct vki_shm_info {
2339    int used_ids ;   2339    int used_ids ;
2340    unsigned long shm_tot ;   2340    unsigned long shm_tot ;
2341    unsigned long shm_rss ;   2341    unsigned long shm_rss ;
2342    unsigned long shm_swp ;   2342    unsigned long shm_swp ;
2343    unsigned long swap_attempts ;   2343    unsigned long swap_attempts ;
2344    unsigned long swap_successes ;   2344    unsigned long swap_successes ;
2345 };   2345 };
2346 struct vki_rtc_time {   2346 struct vki_rtc_time {
2347    int tm_sec ;   2347    int tm_sec ;
2348    int tm_min ;   2348    int tm_min ;
2349    int tm_hour ;   2349    int tm_hour ;
2350    int tm_mday ;   2350    int tm_mday ;
2351    int tm_mon ;   2351    int tm_mon ;
2352    int tm_year ;   2352    int tm_year ;
2353    int tm_wday ;   2353    int tm_wday ;
2354    int tm_yday ;   2354    int tm_yday ;
2355    int tm_isdst ;   2355    int tm_isdst ;
2356 };   2356 };
2357 struct __anonstruct_vki_isdn_net_ioctl_phone_90 {   2357 struct __anonstruct_vki_isdn_net_ioctl_phone_90 {
2358    char name[10] ;   2358    char name[10] ;
2359    char phone[32] ;   2359    char phone[32] ;
2360    int outgoing ;   2360    int outgoing ;
2361 };   2361 };
2362 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_90 vki_isdn_net_ioctl_phone;   2362 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_90 vki_isdn_net_ioctl_phone;
2363 struct vki_ppdev_frob_struct {   2363 struct vki_ppdev_frob_struct {
2364    unsigned char mask ;   2364    unsigned char mask ;
2365    unsigned char val ;   2365    unsigned char val ;
2366 };   2366 };
2367 struct vki_sg_io_hdr {   2367 struct vki_sg_io_hdr {
2368    int interface_id ;   2368    int interface_id ;
2369    int dxfer_direction ;   2369    int dxfer_direction ;
2370    unsigned char cmd_len ;   2370    unsigned char cmd_len ;
2371    unsigned char mx_sb_len ;   2371    unsigned char mx_sb_len ;
2372    unsigned short iovec_count ;   2372    unsigned short iovec_count ;
2373    unsigned int dxfer_len ;   2373    unsigned int dxfer_len ;
2374    void *dxferp ;   2374    void *dxferp ;
2375    unsigned char *cmdp ;   2375    unsigned char *cmdp ;
2376    void *sbp ;   2376    void *sbp ;
2377    unsigned int timeout ;   2377    unsigned int timeout ;
2378    unsigned int flags ;   2378    unsigned int flags ;
2379    int pack_id ;   2379    int pack_id ;
2380    void *usr_ptr ;   2380    void *usr_ptr ;
2381    unsigned char status ;   2381    unsigned char status ;
2382    unsigned char masked_status ;   2382    unsigned char masked_status ;
2383    unsigned char msg_status ;   2383    unsigned char msg_status ;
2384    unsigned char sb_len_wr ;   2384    unsigned char sb_len_wr ;
2385    unsigned short host_status ;   2385    unsigned short host_status ;
2386    unsigned short driver_status ;   2386    unsigned short driver_status ;
2387    int resid ;   2387    int resid ;
2388    unsigned int duration ;   2388    unsigned int duration ;
2389    unsigned int info ;   2389    unsigned int info ;
2390 };   2390 };
2391 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;   2391 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;
2392 struct vki_sg_scsi_id {   2392 struct vki_sg_scsi_id {
2393    int host_no ;   2393    int host_no ;
2394    int channel ;   2394    int channel ;
2395    int scsi_id ;   2395    int scsi_id ;
2396    int lun ;   2396    int lun ;
2397    int scsi_type ;   2397    int scsi_type ;
2398    short h_cmd_per_lun ;   2398    short h_cmd_per_lun ;
2399    short d_queue_depth ;   2399    short d_queue_depth ;
2400    int unused[2] ;   2400    int unused[2] ;
2401 };   2401 };
2402 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;   2402 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;
2403 struct vki_cdrom_msf0 {   2403 struct vki_cdrom_msf0 {
2404    __vki_u8 minute ;   2404    __vki_u8 minute ;
2405    __vki_u8 second ;   2405    __vki_u8 second ;
2406    __vki_u8 frame ;   2406    __vki_u8 frame ;
2407 };   2407 };
2408 union vki_cdrom_addr {   2408 union vki_cdrom_addr {
2409    struct vki_cdrom_msf0 msf ;   2409    struct vki_cdrom_msf0 msf ;
2410    int lba ;   2410    int lba ;
2411 };   2411 };
2412 struct vki_cdrom_msf {   2412 struct vki_cdrom_msf {
2413    __vki_u8 cdmsf_min0 ;   2413    __vki_u8 cdmsf_min0 ;
2414    __vki_u8 cdmsf_sec0 ;   2414    __vki_u8 cdmsf_sec0 ;
2415    __vki_u8 cdmsf_frame0 ;   2415    __vki_u8 cdmsf_frame0 ;
2416    __vki_u8 cdmsf_min1 ;   2416    __vki_u8 cdmsf_min1 ;
2417    __vki_u8 cdmsf_sec1 ;   2417    __vki_u8 cdmsf_sec1 ;
2418    __vki_u8 cdmsf_frame1 ;   2418    __vki_u8 cdmsf_frame1 ;
2419 };   2419 };
2420 struct vki_cdrom_tochdr {   2420 struct vki_cdrom_tochdr {
2421    __vki_u8 cdth_trk0 ;   2421    __vki_u8 cdth_trk0 ;
2422    __vki_u8 cdth_trk1 ;   2422    __vki_u8 cdth_trk1 ;
2423 };   2423 };
2424 struct vki_cdrom_volctrl {   2424 struct vki_cdrom_volctrl {
2425    __vki_u8 channel0 ;   2425    __vki_u8 channel0 ;
2426    __vki_u8 channel1 ;   2426    __vki_u8 channel1 ;
2427    __vki_u8 channel2 ;   2427    __vki_u8 channel2 ;
2428    __vki_u8 channel3 ;   2428    __vki_u8 channel3 ;
2429 };   2429 };
2430 struct vki_cdrom_subchnl {   2430 struct vki_cdrom_subchnl {
2431    __vki_u8 cdsc_format ;   2431    __vki_u8 cdsc_format ;
2432    __vki_u8 cdsc_audiostatus ;   2432    __vki_u8 cdsc_audiostatus ;
2433    __vki_u8 cdsc_adr : 4 ;   2433    __vki_u8 cdsc_adr : 4 ;
2434    __vki_u8 cdsc_ctrl : 4 ;   2434    __vki_u8 cdsc_ctrl : 4 ;
2435    __vki_u8 cdsc_trk ;   2435    __vki_u8 cdsc_trk ;
2436    __vki_u8 cdsc_ind ;   2436    __vki_u8 cdsc_ind ;
2437    union vki_cdrom_addr cdsc_absaddr ;   2437    union vki_cdrom_addr cdsc_absaddr ;
2438    union vki_cdrom_addr cdsc_reladdr ;   2438    union vki_cdrom_addr cdsc_reladdr ;
2439 };   2439 };
2440 struct vki_cdrom_tocentry {   2440 struct vki_cdrom_tocentry {
2441    __vki_u8 cdte_track ;   2441    __vki_u8 cdte_track ;
2442    __vki_u8 cdte_adr : 4 ;   2442    __vki_u8 cdte_adr : 4 ;
2443    __vki_u8 cdte_ctrl : 4 ;   2443    __vki_u8 cdte_ctrl : 4 ;
2444    __vki_u8 cdte_format ;   2444    __vki_u8 cdte_format ;
2445    union vki_cdrom_addr cdte_addr ;   2445    union vki_cdrom_addr cdte_addr ;
2446    __vki_u8 cdte_datamode ;   2446    __vki_u8 cdte_datamode ;
2447 };   2447 };
2448 struct vki_cdrom_read {   2448 struct vki_cdrom_read {
2449    int cdread_lba ;   2449    int cdread_lba ;
2450    char *cdread_bufaddr ;   2450    char *cdread_bufaddr ;
2451    int cdread_buflen ;   2451    int cdread_buflen ;
2452 };   2452 };
2453 struct vki_cdrom_read_audio {   2453 struct vki_cdrom_read_audio {
2454    union vki_cdrom_addr addr ;   2454    union vki_cdrom_addr addr ;
2455    __vki_u8 addr_format ;   2455    __vki_u8 addr_format ;
2456    int nframes ;   2456    int nframes ;
2457    __vki_u8 *buf ;   2457    __vki_u8 *buf ;
2458 };   2458 };
2459 struct vki_cdrom_multisession {   2459 struct vki_cdrom_multisession {
2460    union vki_cdrom_addr addr ;   2460    union vki_cdrom_addr addr ;
2461    __vki_u8 xa_flag ;   2461    __vki_u8 xa_flag ;
2462    __vki_u8 addr_format ;   2462    __vki_u8 addr_format ;
2463 };   2463 };
2464 struct vki_cdrom_mcn {   2464 struct vki_cdrom_mcn {
2465    __vki_u8 medium_catalog_number[14] ;   2465    __vki_u8 medium_catalog_number[14] ;
2466 };   2466 };
2467 struct vki_cdrom_generic_command {   2467 struct vki_cdrom_generic_command {
2468    unsigned char cmd[12] ;   2468    unsigned char cmd[12] ;
2469    unsigned char *buffer ;   2469    unsigned char *buffer ;
2470    unsigned int buflen ;   2470    unsigned int buflen ;
2471    int stat ;   2471    int stat ;
2472    void *sense ;   2472    void *sense ;
2473    unsigned char data_direction ;   2473    unsigned char data_direction ;
2474    int quiet ;   2474    int quiet ;
2475    int timeout ;   2475    int timeout ;
2476    void *reserved[1] ;   2476    void *reserved[1] ;
2477 };   2477 };
2478 struct vki_audio_buf_info {   2478 struct vki_audio_buf_info {
2479    int fragments ;   2479    int fragments ;
2480    int fragstotal ;   2480    int fragstotal ;
2481    int fragsize ;   2481    int fragsize ;
2482    int bytes ;   2482    int bytes ;
2483 };   2483 };
2484 typedef struct vki_audio_buf_info vki_audio_buf_info;   2484 typedef struct vki_audio_buf_info vki_audio_buf_info;
2485 struct vki_hd_geometry {   2485 struct vki_hd_geometry {
2486    unsigned char heads ;   2486    unsigned char heads ;
2487    unsigned char sectors ;   2487    unsigned char sectors ;
2488    unsigned short cylinders ;   2488    unsigned short cylinders ;
2489    unsigned long start ;   2489    unsigned long start ;
2490 };   2490 };
2491 struct vki_fb_fix_screeninfo {   2491 struct vki_fb_fix_screeninfo {
2492    char id[16] ;   2492    char id[16] ;
2493    unsigned long smem_start ;   2493    unsigned long smem_start ;
2494    __vki_u32 smem_len ;   2494    __vki_u32 smem_len ;
2495    __vki_u32 type ;   2495    __vki_u32 type ;
2496    __vki_u32 type_aux ;   2496    __vki_u32 type_aux ;
2497    __vki_u32 visual ;   2497    __vki_u32 visual ;
2498    __vki_u16 xpanstep ;   2498    __vki_u16 xpanstep ;
2499    __vki_u16 ypanstep ;   2499    __vki_u16 ypanstep ;
2500    __vki_u16 ywrapstep ;   2500    __vki_u16 ywrapstep ;
2501    __vki_u32 line_length ;   2501    __vki_u32 line_length ;
2502    unsigned long mmio_start ;   2502    unsigned long mmio_start ;
2503    __vki_u32 mmio_len ;   2503    __vki_u32 mmio_len ;
2504    __vki_u32 accel ;   2504    __vki_u32 accel ;
2505    __vki_u16 reserved[3] ;   2505    __vki_u16 reserved[3] ;
2506 };   2506 };
2507 struct vki_fb_bitfield {   2507 struct vki_fb_bitfield {
2508    __vki_u32 offset ;   2508    __vki_u32 offset ;
2509    __vki_u32 length ;   2509    __vki_u32 length ;
2510    __vki_u32 msb_right ;   2510    __vki_u32 msb_right ;
2511 };   2511 };
2512 struct vki_fb_var_screeninfo {   2512 struct vki_fb_var_screeninfo {
2513    __vki_u32 xres ;   2513    __vki_u32 xres ;
2514    __vki_u32 yres ;   2514    __vki_u32 yres ;
2515    __vki_u32 xres_virtual ;   2515    __vki_u32 xres_virtual ;
2516    __vki_u32 yres_virtual ;   2516    __vki_u32 yres_virtual ;
2517    __vki_u32 xoffset ;   2517    __vki_u32 xoffset ;
2518    __vki_u32 yoffset ;   2518    __vki_u32 yoffset ;
2519    __vki_u32 bits_per_pixel ;   2519    __vki_u32 bits_per_pixel ;
2520    __vki_u32 grayscale ;   2520    __vki_u32 grayscale ;
2521    struct vki_fb_bitfield red ;   2521    struct vki_fb_bitfield red ;
2522    struct vki_fb_bitfield green ;   2522    struct vki_fb_bitfield green ;
2523    struct vki_fb_bitfield blue ;   2523    struct vki_fb_bitfield blue ;
2524    struct vki_fb_bitfield transp ;   2524    struct vki_fb_bitfield transp ;
2525    __vki_u32 nonstd ;   2525    __vki_u32 nonstd ;
2526    __vki_u32 activate ;   2526    __vki_u32 activate ;
2527    __vki_u32 height ;   2527    __vki_u32 height ;
2528    __vki_u32 width ;   2528    __vki_u32 width ;
2529    __vki_u32 accel_flags ;   2529    __vki_u32 accel_flags ;
2530    __vki_u32 pixclock ;   2530    __vki_u32 pixclock ;
2531    __vki_u32 left_margin ;   2531    __vki_u32 left_margin ;
2532    __vki_u32 right_margin ;   2532    __vki_u32 right_margin ;
2533    __vki_u32 upper_margin ;   2533    __vki_u32 upper_margin ;
2534    __vki_u32 lower_margin ;   2534    __vki_u32 lower_margin ;
2535    __vki_u32 hsync_len ;   2535    __vki_u32 hsync_len ;
2536    __vki_u32 vsync_len ;   2536    __vki_u32 vsync_len ;
2537    __vki_u32 sync ;   2537    __vki_u32 sync ;
2538    __vki_u32 vmode ;   2538    __vki_u32 vmode ;
2539    __vki_u32 rotate ;   2539    __vki_u32 rotate ;
2540    __vki_u32 reserved[5] ;   2540    __vki_u32 reserved[5] ;
2541 };   2541 };
2542 struct vki_consolefontdesc {   2542 struct vki_consolefontdesc {
2543    unsigned short charcount ;   2543    unsigned short charcount ;
2544    unsigned short charheight ;   2544    unsigned short charheight ;
2545    char *chardata ;   2545    char *chardata ;
2546 };   2546 };
2547 struct vki_unipair {   2547 struct vki_unipair {
2548    unsigned short unicode ;   2548    unsigned short unicode ;
2549    unsigned short fontpos ;   2549    unsigned short fontpos ;
2550 };   2550 };
2551 struct vki_unimapdesc {   2551 struct vki_unimapdesc {
2552    unsigned short entry_ct ;   2552    unsigned short entry_ct ;
2553    struct vki_unipair *entries ;   2553    struct vki_unipair *entries ;
2554 };   2554 };
2555 struct vki_unimapinit {   2555 struct vki_unimapinit {
2556    unsigned short advised_hashsize ;   2556    unsigned short advised_hashsize ;
2557    unsigned short advised_hashstep ;   2557    unsigned short advised_hashstep ;
2558    unsigned short advised_hashlevel ;   2558    unsigned short advised_hashlevel ;
2559 };   2559 };
2560 struct vki_kbentry {   2560 struct vki_kbentry {
2561    unsigned char kb_table ;   2561    unsigned char kb_table ;
2562    unsigned char kb_index ;   2562    unsigned char kb_index ;
2563    unsigned short kb_value ;   2563    unsigned short kb_value ;
2564 };   2564 };
2565 struct vki_kbsentry {   2565 struct vki_kbsentry {
2566    unsigned char kb_func ;   2566    unsigned char kb_func ;
2567    unsigned char kb_string[512] ;   2567    unsigned char kb_string[512] ;
2568 };   2568 };
2569 struct vki_kbdiacr {   2569 struct vki_kbdiacr {
2570    unsigned char diacr ;   2570    unsigned char diacr ;
2571    unsigned char base ;   2571    unsigned char base ;
2572    unsigned char result ;   2572    unsigned char result ;
2573 };   2573 };
2574 struct vki_kbdiacrs {   2574 struct vki_kbdiacrs {
2575    unsigned int kb_cnt ;   2575    unsigned int kb_cnt ;
2576    struct vki_kbdiacr kbdiacr[256] ;   2576    struct vki_kbdiacr kbdiacr[256] ;
2577 };   2577 };
2578 struct vki_kbkeycode {   2578 struct vki_kbkeycode {
2579    unsigned int scancode ;   2579    unsigned int scancode ;
2580    unsigned int keycode ;   2580    unsigned int keycode ;
2581 };   2581 };
2582 struct vki_kbd_repeat {   2582 struct vki_kbd_repeat {
2583    int delay ;   2583    int delay ;
2584    int period ;   2584    int period ;
2585 };   2585 };
2586 struct vki_console_font_op {   2586 struct vki_console_font_op {
2587    unsigned int op ;   2587    unsigned int op ;
2588    unsigned int flags ;   2588    unsigned int flags ;
2589    unsigned int width ;   2589    unsigned int width ;
2590    unsigned int height ;   2590    unsigned int height ;
2591    unsigned int charcount ;   2591    unsigned int charcount ;
2592    unsigned char *data ;   2592    unsigned char *data ;
2593 };   2593 };
2594 typedef __vki_kernel_uid32_t vki_qid_t;   2594 typedef __vki_kernel_uid32_t vki_qid_t;
2595 struct __anonstruct_92 {   2595 struct __anonstruct_92 {
2596    int  : 0 ;   2596    int  : 0 ;
2597 };   2597 };
2598 struct __anonstruct_93 {   2598 struct __anonstruct_93 {
2599    int  : 0 ;   2599    int  : 0 ;
2600 };   2600 };
2601 enum __anonenum_91 {   2601 enum __anonenum_91 {
2602     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,   2602     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,
2603     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,   2603     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,
2604     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,   2604     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,
2605     VKI_SNDRV_PCM_IOCTL_RESET = 16705,   2605     VKI_SNDRV_PCM_IOCTL_RESET = 16705,
2606     VKI_SNDRV_PCM_IOCTL_START = 16706,   2606     VKI_SNDRV_PCM_IOCTL_START = 16706,
2607     VKI_SNDRV_PCM_IOCTL_DROP = 16707,   2607     VKI_SNDRV_PCM_IOCTL_DROP = 16707,
2608     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,   2608     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,
2609     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,   2609     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,
2610     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,   2610     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,
2611     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,   2611     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,
2612     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,   2612     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,
2613     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737   2613     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737
2614 } ;   2614 } ;
2615 enum __anonenum_94 {   2615 enum __anonenum_94 {
2616     VKI_SNDRV_TIMER_IOCTL_START = 21664,   2616     VKI_SNDRV_TIMER_IOCTL_START = 21664,
2617     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,   2617     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,
2618     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,   2618     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,
2619     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667   2619     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667
2620 } ;   2620 } ;
2621 struct vki_serial_icounter_struct {   2621 struct vki_serial_icounter_struct {
2622    int cts ;   2622    int cts ;
2623    int dsr ;   2623    int dsr ;
2624    int rng ;   2624    int rng ;
2625    int dcd ;   2625    int dcd ;
2626    int rx ;   2626    int rx ;
2627    int tx ;   2627    int tx ;
2628    int frame ;   2628    int frame ;
2629    int overrun ;   2629    int overrun ;
2630    int parity ;   2630    int parity ;
2631    int brk ;   2631    int brk ;
2632    int buf_overrun ;   2632    int buf_overrun ;
2633    int reserved[9] ;   2633    int reserved[9] ;
2634 };   2634 };
2635 struct vki_vt_mode {   2635 struct vki_vt_mode {
2636    char mode ;   2636    char mode ;
2637    char waitv ;   2637    char waitv ;
2638    short relsig ;   2638    short relsig ;
2639    short acqsig ;   2639    short acqsig ;
2640    short frsig ;   2640    short frsig ;
2641 };   2641 };
2642 struct vki_vt_stat {   2642 struct vki_vt_stat {
2643    unsigned short v_active ;   2643    unsigned short v_active ;
2644    unsigned short v_signal ;   2644    unsigned short v_signal ;
2645    unsigned short v_state ;   2645    unsigned short v_state ;
2646 };   2646 };
2647 struct vki_vt_sizes {   2647 struct vki_vt_sizes {
2648    unsigned short v_rows ;   2648    unsigned short v_rows ;
2649    unsigned short v_cols ;   2649    unsigned short v_cols ;
2650    unsigned short v_scrollsize ;   2650    unsigned short v_scrollsize ;
2651 };   2651 };
2652 struct vki_vt_consize {   2652 struct vki_vt_consize {
2653    unsigned short v_rows ;   2653    unsigned short v_rows ;
2654    unsigned short v_cols ;   2654    unsigned short v_cols ;
2655    unsigned short v_vlin ;   2655    unsigned short v_vlin ;
2656    unsigned short v_clin ;   2656    unsigned short v_clin ;
2657    unsigned short v_vcol ;   2657    unsigned short v_vcol ;
2658    unsigned short v_ccol ;   2658    unsigned short v_ccol ;
2659 };   2659 };
2660 struct vki_usbdevfs_ctrltransfer {   2660 struct vki_usbdevfs_ctrltransfer {
2661    __vki_u8 bRequestType ;   2661    __vki_u8 bRequestType ;
2662    __vki_u8 bRequest ;   2662    __vki_u8 bRequest ;
2663    __vki_u16 wValue ;   2663    __vki_u16 wValue ;
2664    __vki_u16 wIndex ;   2664    __vki_u16 wIndex ;
2665    __vki_u16 wLength ;   2665    __vki_u16 wLength ;
2666    __vki_u32 timeout ;   2666    __vki_u32 timeout ;
2667    void *data ;   2667    void *data ;
2668 };   2668 };
2669 struct vki_usbdevfs_bulktransfer {   2669 struct vki_usbdevfs_bulktransfer {
2670    unsigned int ep ;   2670    unsigned int ep ;
2671    unsigned int len ;   2671    unsigned int len ;
2672    unsigned int timeout ;   2672    unsigned int timeout ;
2673    void *data ;   2673    void *data ;
2674 };   2674 };
2675 struct vki_usbdevfs_getdriver {   2675 struct vki_usbdevfs_getdriver {
2676    unsigned int interface ;   2676    unsigned int interface ;
2677    char driver[256] ;   2677    char driver[256] ;
2678 };   2678 };
2679 struct vki_usbdevfs_connectinfo {   2679 struct vki_usbdevfs_connectinfo {
2680    unsigned int devnum ;   2680    unsigned int devnum ;
2681    unsigned char slow ;   2681    unsigned char slow ;
2682 };   2682 };
2683 struct vki_usbdevfs_iso_packet_desc {   2683 struct vki_usbdevfs_iso_packet_desc {
2684    unsigned int length ;   2684    unsigned int length ;
2685    unsigned int actual_length ;   2685    unsigned int actual_length ;
2686    unsigned int status ;   2686    unsigned int status ;
2687 };   2687 };
2688 struct vki_usbdevfs_urb {   2688 struct vki_usbdevfs_urb {
2689    unsigned char type ;   2689    unsigned char type ;
2690    unsigned char endpoint ;   2690    unsigned char endpoint ;
2691    int status ;   2691    int status ;
2692    unsigned int flags ;   2692    unsigned int flags ;
2693    void *buffer ;   2693    void *buffer ;
2694    int buffer_length ;   2694    int buffer_length ;
2695    int actual_length ;   2695    int actual_length ;
2696    int start_frame ;   2696    int start_frame ;
2697    int number_of_packets ;   2697    int number_of_packets ;
2698    int error_count ;   2698    int error_count ;
2699    unsigned int signr ;   2699    unsigned int signr ;
2700    void *usercontext ;   2700    void *usercontext ;
2701    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;   2701    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;
2702 };   2702 };
2703 struct vki_usbdevfs_ioctl {   2703 struct vki_usbdevfs_ioctl {
2704    int ifno ;   2704    int ifno ;
2705    int ioctl_code ;   2705    int ioctl_code ;
2706    void *data ;   2706    void *data ;
2707 };   2707 };
2708 struct vki_usbdevfs_setuppacket {   2708 struct vki_usbdevfs_setuppacket {
2709    __vki_u8 bRequestType ;   2709    __vki_u8 bRequestType ;
2710    __vki_u8 bRequest ;   2710    __vki_u8 bRequest ;
2711    __vki_u16 wValue ;   2711    __vki_u16 wValue ;
2712    __vki_u16 wIndex ;   2712    __vki_u16 wIndex ;
2713    __vki_u16 wLength ;   2713    __vki_u16 wLength ;
2714 };   2714 };
2715 typedef vki_int32_t vki_key_serial_t;   2715 typedef vki_int32_t vki_key_serial_t;
2716 typedef vki_uint32_t vki_key_perm_t;   2716 typedef vki_uint32_t vki_key_perm_t;
2717 struct vki_iw_param {   2717 struct vki_iw_param {
2718    __vki_s32 value ;   2718    __vki_s32 value ;
2719    __vki_u8 fixed ;   2719    __vki_u8 fixed ;
2720    __vki_u8 disabled ;   2720    __vki_u8 disabled ;
2721    __vki_u16 flags ;   2721    __vki_u16 flags ;
2722 };   2722 };
2723 struct vki_iw_point {   2723 struct vki_iw_point {
2724    void *pointer ;   2724    void *pointer ;
2725    __vki_u16 length ;   2725    __vki_u16 length ;
2726    __vki_u16 flags ;   2726    __vki_u16 flags ;
2727 };   2727 };
2728 struct vki_iw_freq {   2728 struct vki_iw_freq {
2729    __vki_s32 m ;   2729    __vki_s32 m ;
2730    __vki_s16 e ;   2730    __vki_s16 e ;
2731    __vki_u8 i ;   2731    __vki_u8 i ;
2732    __vki_u8 flags ;   2732    __vki_u8 flags ;
2733 };   2733 };
2734 struct vki_iw_quality {   2734 struct vki_iw_quality {
2735    __vki_u8 qual ;   2735    __vki_u8 qual ;
2736    __vki_u8 level ;   2736    __vki_u8 level ;
2737    __vki_u8 noise ;   2737    __vki_u8 noise ;
2738    __vki_u8 updated ;   2738    __vki_u8 updated ;
2739 };   2739 };
2740 union vki_iwreq_data {   2740 union vki_iwreq_data {
2741    char name[16] ;   2741    char name[16] ;
2742    struct vki_iw_point essid ;   2742    struct vki_iw_point essid ;
2743    struct vki_iw_param nwid ;   2743    struct vki_iw_param nwid ;
2744    struct vki_iw_freq freq ;   2744    struct vki_iw_freq freq ;
2745    struct vki_iw_param sens ;   2745    struct vki_iw_param sens ;
2746    struct vki_iw_param bitrate ;   2746    struct vki_iw_param bitrate ;
2747    struct vki_iw_param txpower ;   2747    struct vki_iw_param txpower ;
2748    struct vki_iw_param rts ;   2748    struct vki_iw_param rts ;
2749    struct vki_iw_param frag ;   2749    struct vki_iw_param frag ;
2750    __vki_u32 mode ;   2750    __vki_u32 mode ;
2751    struct vki_iw_param retry ;   2751    struct vki_iw_param retry ;
2752    struct vki_iw_point encoding ;   2752    struct vki_iw_point encoding ;
2753    struct vki_iw_param power ;   2753    struct vki_iw_param power ;
2754    struct vki_iw_quality qual ;   2754    struct vki_iw_quality qual ;
2755    struct vki_sockaddr ap_addr ;   2755    struct vki_sockaddr ap_addr ;
2756    struct vki_sockaddr addr ;   2756    struct vki_sockaddr addr ;
2757    struct vki_iw_param param ;   2757    struct vki_iw_param param ;
2758    struct vki_iw_point data ;   2758    struct vki_iw_point data ;
2759 };   2759 };
2760 union __anonunion_ifr_ifrn_95 {   2760 union __anonunion_ifr_ifrn_95 {
2761    char ifrn_name[16] ;   2761    char ifrn_name[16] ;
2762 };   2762 };
2763 struct vki_iwreq {   2763 struct vki_iwreq {
2764    union __anonunion_ifr_ifrn_95 ifr_ifrn ;   2764    union __anonunion_ifr_ifrn_95 ifr_ifrn ;
2765    union vki_iwreq_data u ;   2765    union vki_iwreq_data u ;
2766 };   2766 };
2767 union __anonunion____missing_field_name_96 {   2767 union __anonunion____missing_field_name_96 {
2768    __vki_u64 sample_period ;   2768    __vki_u64 sample_period ;
2769    __vki_u64 sample_freq ;   2769    __vki_u64 sample_freq ;
2770 };   2770 };
2771 struct vki_perf_counter_attr {   2771 struct vki_perf_counter_attr {
2772    __vki_u32 type ;   2772    __vki_u32 type ;
2773    __vki_u32 size ;   2773    __vki_u32 size ;
2774    __vki_u64 config ;   2774    __vki_u64 config ;
2775    union __anonunion____missing_field_name_96 __annonCompField1 ;   2775    union __anonunion____missing_field_name_96 __annonCompField1 ;
2776    __vki_u64 sample_type ;   2776    __vki_u64 sample_type ;
2777    __vki_u64 read_format ;   2777    __vki_u64 read_format ;
2778    __vki_u64 disabled : 1 ;   2778    __vki_u64 disabled : 1 ;
2779    __vki_u64 inherit : 1 ;   2779    __vki_u64 inherit : 1 ;
2780    __vki_u64 pinned : 1 ;   2780    __vki_u64 pinned : 1 ;
2781    __vki_u64 exclusive : 1 ;   2781    __vki_u64 exclusive : 1 ;
2782    __vki_u64 exclude_user : 1 ;   2782    __vki_u64 exclude_user : 1 ;
2783    __vki_u64 exclude_kernel : 1 ;   2783    __vki_u64 exclude_kernel : 1 ;
2784    __vki_u64 exclude_hv : 1 ;   2784    __vki_u64 exclude_hv : 1 ;
2785    __vki_u64 exclude_idle : 1 ;   2785    __vki_u64 exclude_idle : 1 ;
2786    __vki_u64 mmap : 1 ;   2786    __vki_u64 mmap : 1 ;
2787    __vki_u64 comm : 1 ;   2787    __vki_u64 comm : 1 ;
2788    __vki_u64 freq : 1 ;   2788    __vki_u64 freq : 1 ;
2789    __vki_u64 inherit_stat : 1 ;   2789    __vki_u64 inherit_stat : 1 ;
2790    __vki_u64 enable_on_exec : 1 ;   2790    __vki_u64 enable_on_exec : 1 ;
2791    __vki_u64 task : 1 ;   2791    __vki_u64 task : 1 ;
2792    __vki_u64 __reserved_1 : 50 ;   2792    __vki_u64 __reserved_1 : 50 ;
2793    __vki_u32 wakeup_events ;   2793    __vki_u32 wakeup_events ;
2794    __vki_u32 __reserved_2 ;   2794    __vki_u32 __reserved_2 ;
2795    __vki_u64 __reserved_3 ;   2795    __vki_u64 __reserved_3 ;
2796 };   2796 };
2797 struct vki_getcpu_cache {   2797 struct vki_getcpu_cache {
2798    unsigned long blob[128U / sizeof(long )] ;   2798    unsigned long blob[128U / sizeof(long )] ;
2799 };   2799 };
2800 typedef void (*vg_atfork_t)(ThreadId  );   2800 typedef void (*vg_atfork_t)(ThreadId  );
2801 enum __anonenum_VgMsgKind_97 {   2801 enum __anonenum_VgMsgKind_97 {
2802     Vg_FailMsg = 0,   2802     Vg_FailMsg = 0,
2803     Vg_UserMsg = 1,   2803     Vg_UserMsg = 1,
2804     Vg_DebugMsg = 2,   2804     Vg_DebugMsg = 2,
2805     Vg_ClientMsg = 3   2805     Vg_ClientMsg = 3
2806 } ;   2806 } ;
2807 typedef enum __anonenum_VgMsgKind_97 VgMsgKind;   2807 typedef enum __anonenum_VgMsgKind_97 VgMsgKind;
2808 struct __anonstruct_OutputSink_98 {   2808 struct __anonstruct_OutputSink_98 {
2809    Int fd ;   2809    Int fd ;
2810    Bool is_socket ;   2810    Bool is_socket ;
2811 };   2811 };
2812 typedef struct __anonstruct_OutputSink_98 OutputSink;   2812 typedef struct __anonstruct_OutputSink_98 OutputSink;
2813 typedef Int ArenaId;   2813 typedef Int ArenaId;
2814 struct vg_mallinfo {   2814 struct vg_mallinfo {
2815    int arena ;   2815    int arena ;
2816    int ordblks ;   2816    int ordblks ;
2817    int smblks ;   2817    int smblks ;
2818    int hblks ;   2818    int hblks ;
2819    int hblkhd ;   2819    int hblkhd ;
2820    int usmblks ;   2820    int usmblks ;
2821    int fsmblks ;   2821    int fsmblks ;
2822    int uordblks ;   2822    int uordblks ;
2823    int fordblks ;   2823    int fordblks ;
2824    int keepcost ;   2824    int keepcost ;
2825 };   2825 };
2826 enum __anonenum_PointKind_99 {   2826 enum __anonenum_PointKind_99 {
2827     software_breakpoint = 0,   2827     software_breakpoint = 0,
2828     hardware_breakpoint = 1,   2828     hardware_breakpoint = 1,
2829     write_watchpoint = 2,   2829     write_watchpoint = 2,
2830     read_watchpoint = 3,   2830     read_watchpoint = 3,
2831     access_watchpoint = 4   2831     access_watchpoint = 4
2832 } ;   2832 } ;
2833 typedef enum __anonenum_PointKind_99 PointKind;   2833 typedef enum __anonenum_PointKind_99 PointKind;
2834 enum __anonenum_kwd_report_error_100 {   2834 enum __anonenum_kwd_report_error_100 {
2835     kwd_report_none = 0,   2835     kwd_report_none = 0,
2836     kwd_report_all = 1,   2836     kwd_report_all = 1,
2837     kwd_report_duplicated_matches = 2   2837     kwd_report_duplicated_matches = 2
2838 } ;   2838 } ;
2839 typedef enum __anonenum_kwd_report_error_100 kwd_report_error;   2839 typedef enum __anonenum_kwd_report_error_100 kwd_report_error;
2840 enum __anonenum_FinishReason_101 {   2840 enum __anonenum_FinishReason_101 {
2841     orderly_finish = 0,   2841     orderly_finish = 0,
2842     reset_after_error = 1,   2842     reset_after_error = 1,
2843     reset_after_fork = 2   2843     reset_after_fork = 2
2844 } ;   2844 } ;
2845 typedef enum __anonenum_FinishReason_101 FinishReason;   2845 typedef enum __anonenum_FinishReason_101 FinishReason;
2846 struct __anonstruct_VgdbShared32_102 {   2846 struct __anonstruct_VgdbShared32_102 {
2847    int vgdb_pid ;   2847    int vgdb_pid ;
2848    int volatile   written_by_vgdb ;   2848    int volatile   written_by_vgdb ;
2849    int volatile   seen_by_valgrind ;   2849    int volatile   seen_by_valgrind ;
2850    Addr32 invoke_gdbserver ;   2850    Addr32 invoke_gdbserver ;
2851    Addr32 threads ;   2851    Addr32 threads ;
2852    int sizeof_ThreadState ;   2852    int sizeof_ThreadState ;
2853    int offset_status ;   2853    int offset_status ;
2854    int offset_lwpid ;   2854    int offset_lwpid ;
2855 };   2855 };
2856 typedef struct __anonstruct_VgdbShared32_102 VgdbShared32;   2856 typedef struct __anonstruct_VgdbShared32_102 VgdbShared32;
2857 struct __anonstruct_VgdbShared64_103 {   2857 struct __anonstruct_VgdbShared64_103 {
2858    int vgdb_pid ;   2858    int vgdb_pid ;
2859    int volatile   written_by_vgdb ;   2859    int volatile   written_by_vgdb ;
2860    int volatile   seen_by_valgrind ;   2860    int volatile   seen_by_valgrind ;
2861    Addr64 invoke_gdbserver ;   2861    Addr64 invoke_gdbserver ;
2862    Addr64 threads ;   2862    Addr64 threads ;
2863    int sizeof_ThreadState ;   2863    int sizeof_ThreadState ;
2864    int offset_status ;   2864    int offset_status ;
2865    int offset_lwpid ;   2865    int offset_lwpid ;
2866 };   2866 };
2867 typedef struct __anonstruct_VgdbShared64_103 VgdbShared64;   2867 typedef struct __anonstruct_VgdbShared64_103 VgdbShared64;
2868 typedef VgdbShared32 VgdbShared;   2868 typedef VgdbShared32 VgdbShared;
2869 enum __anonenum_VgVgdb_104 {   2869 enum __anonenum_VgVgdb_104 {
2870     Vg_VgdbNo = 0,   2870     Vg_VgdbNo = 0,
2871     Vg_VgdbYes = 1,   2871     Vg_VgdbYes = 1,
2872     Vg_VgdbFull = 2   2872     Vg_VgdbFull = 2
2873 } ;   2873 } ;
2874 typedef enum __anonenum_VgVgdb_104 VgVgdb;   2874 typedef enum __anonenum_VgVgdb_104 VgVgdb;
2875 enum __anonenum_VgSmc_105 {   2875 enum __anonenum_VgSmc_105 {
2876     Vg_SmcNone = 0,   2876     Vg_SmcNone = 0,
2877     Vg_SmcStack = 1,   2877     Vg_SmcStack = 1,
2878     Vg_SmcAll = 2   2878     Vg_SmcAll = 2
2879 } ;   2879 } ;
2880 typedef enum __anonenum_VgSmc_105 VgSmc;   2880 typedef enum __anonenum_VgSmc_105 VgSmc;
2881 typedef int __jmp_buf[6];   2881 typedef int __jmp_buf[6];
2882 typedef int __sig_atomic_t;   2882 typedef int __sig_atomic_t;
2883 struct __anonstruct___sigset_t_106 {   2883 struct __anonstruct___sigset_t_106 {
2884    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;   2884    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;
2885 };   2885 };
2886 typedef struct __anonstruct___sigset_t_106 __sigset_t;   2886 typedef struct __anonstruct___sigset_t_106 __sigset_t;
2887 struct __jmp_buf_tag {   2887 struct __jmp_buf_tag {
2888    __jmp_buf __jmpbuf ;   2888    __jmp_buf __jmpbuf ;
2889    int __mask_was_saved ;   2889    int __mask_was_saved ;
2890    __sigset_t __saved_mask ;   2890    __sigset_t __saved_mask ;
2891 };   2891 };
2892 typedef struct __jmp_buf_tag jmp_buf[1];   2892 typedef struct __jmp_buf_tag jmp_buf[1];
2893 typedef struct __jmp_buf_tag sigjmp_buf[1];   2893 typedef struct __jmp_buf_tag sigjmp_buf[1];
2894 enum ThreadStatus {   2894 enum ThreadStatus {
2895     VgTs_Empty = 0,   2895     VgTs_Empty = 0,
2896     VgTs_Init = 1,   2896     VgTs_Init = 1,
2897     VgTs_Runnable = 2,   2897     VgTs_Runnable = 2,
2898     VgTs_WaitSys = 3,   2898     VgTs_WaitSys = 3,
2899     VgTs_Yielding = 4,   2899     VgTs_Yielding = 4,
2900     VgTs_Zombie = 5   2900     VgTs_Zombie = 5
2901 } ;   2901 } ;
2902 typedef enum ThreadStatus ThreadStatus;   2902 typedef enum ThreadStatus ThreadStatus;
2903 enum __anonenum_VgSchedReturnCode_107 {   2903 enum __anonenum_VgSchedReturnCode_107 {
2904     VgSrc_None = 0,   2904     VgSrc_None = 0,
2905     VgSrc_ExitThread = 1,   2905     VgSrc_ExitThread = 1,
2906     VgSrc_ExitProcess = 2,   2906     VgSrc_ExitProcess = 2,
2907     VgSrc_FatalSig = 3   2907     VgSrc_FatalSig = 3
2908 } ;   2908 } ;
2909 typedef enum __anonenum_VgSchedReturnCode_107 VgSchedReturnCode;   2909 typedef enum __anonenum_VgSchedReturnCode_107 VgSchedReturnCode;
2910 typedef VexGuestX86State VexGuestArchState;   2910 typedef VexGuestX86State VexGuestArchState;
2911 struct SyscallStatus;   2911 struct SyscallStatus;
2912 struct SyscallStatus;   2912 struct SyscallStatus;
2913 struct SyscallArgs;   2913 struct SyscallArgs;
2914 struct SyscallArgs;   2914 struct SyscallArgs;
2915 struct __anonstruct_ThreadArchState_108 {   2915 struct __anonstruct_ThreadArchState_108 {
2916    VexGuestArchState vex  __attribute__((__aligned__(16))) ;   2916    VexGuestArchState vex  __attribute__((__aligned__(16))) ;
2917    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;   2917    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;
2918    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;   2918    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;
2919    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;   2919    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;
2920 };   2920 };
2921 typedef struct __anonstruct_ThreadArchState_108 ThreadArchState;   2921 typedef struct __anonstruct_ThreadArchState_108 ThreadArchState;
2922 struct __anonstruct_ThreadOSstate_109 {   2922 struct __anonstruct_ThreadOSstate_109 {
2923    Int lwpid ;   2923    Int lwpid ;
2924    Int threadgroup ;   2924    Int threadgroup ;
2925    ThreadId parent ;   2925    ThreadId parent ;
2926    Addr valgrind_stack_base ;   2926    Addr valgrind_stack_base ;
2927    Addr valgrind_stack_init_SP ;   2927    Addr valgrind_stack_init_SP ;
2928    Word exitcode ;   2928    Word exitcode ;
2929    Int fatalsig ;   2929    Int fatalsig ;
2930 };   2930 };
2931 typedef struct __anonstruct_ThreadOSstate_109 ThreadOSstate;   2931 typedef struct __anonstruct_ThreadOSstate_109 ThreadOSstate;
2932 struct SigQueue;   2932 struct SigQueue;
2933 struct __anonstruct_ThreadState_110 {   2933 struct __anonstruct_ThreadState_110 {
2934    ThreadId tid ;   2934    ThreadId tid ;
2935    ThreadStatus status ;   2935    ThreadStatus status ;
2936    VgSchedReturnCode exitreason ;   2936    VgSchedReturnCode exitreason ;
2937    ThreadArchState arch ;   2937    ThreadArchState arch ;
2938    vki_sigset_t sig_mask ;   2938    vki_sigset_t sig_mask ;
2939    vki_sigset_t tmp_sig_mask ;   2939    vki_sigset_t tmp_sig_mask ;
2940    struct SigQueue *sig_queue ;   2940    struct SigQueue *sig_queue ;
2941    SizeT client_stack_szB ;   2941    SizeT client_stack_szB ;
2942    Addr client_stack_highest_word ;   2942    Addr client_stack_highest_word ;
2943    vki_stack_t altstack ;   2943    vki_stack_t altstack ;
2944    ThreadOSstate os_state ;   2944    ThreadOSstate os_state ;
2945    Bool sched_jmpbuf_valid ;   2945    Bool sched_jmpbuf_valid ;
2946    jmp_buf sched_jmpbuf ;   2946    jmp_buf sched_jmpbuf ;
2947 };   2947 };
2948 typedef struct __anonstruct_ThreadState_110 ThreadState;   2948 typedef struct __anonstruct_ThreadState_110 ThreadState;
2949 struct __anonstruct_FastCacheEntry_111 {   2949 struct __anonstruct_FastCacheEntry_111 {
2950    Addr guest ;   2950    Addr guest ;
2951    Addr host ;   2951    Addr host ;
2952 };   2952 };
2953 typedef struct __anonstruct_FastCacheEntry_111 FastCacheEntry;   2953 typedef struct __anonstruct_FastCacheEntry_111 FastCacheEntry;
2954 struct _BBProfEntry {   2954 struct _BBProfEntry {
2955    Addr64 addr ;   2955    Addr64 addr ;
2956    ULong score ;   2956    ULong score ;
2957 };   2957 };
2958 typedef struct _BBProfEntry BBProfEntry;   2958 typedef struct _BBProfEntry BBProfEntry;
2959 struct _VgHashNode {   2959 struct _VgHashNode {
2960    struct _VgHashNode *next ;   2960    struct _VgHashNode *next ;
2961    UWord key ;   2961    UWord key ;
2962 };   2962 };
2963 typedef struct _VgHashNode VgHashNode;   2963 typedef struct _VgHashNode VgHashNode;
2964 struct _VgHashTable;   2964 struct _VgHashTable;
2965 typedef struct _VgHashTable *VgHashTable;   2965 typedef struct _VgHashTable *VgHashTable;
2966 enum __anonenum_Vg_FnNameKind_112 {   2966 enum __anonenum_Vg_FnNameKind_112 {
2967     Vg_FnNameNormal = 0,   2967     Vg_FnNameNormal = 0,
2968     Vg_FnNameMain = 1,   2968     Vg_FnNameMain = 1,
2969     Vg_FnNameBelowMain = 2   2969     Vg_FnNameBelowMain = 2
2970 } ;   2970 } ;
2971 typedef enum __anonenum_Vg_FnNameKind_112 Vg_FnNameKind;   2971 typedef enum __anonenum_Vg_FnNameKind_112 Vg_FnNameKind;
2972 struct __anonstruct_StackBlock_113 {   2972 struct __anonstruct_StackBlock_113 {
2973    PtrdiffT base ;   2973    PtrdiffT base ;
2974    SizeT szB ;   2974    SizeT szB ;
2975    Bool spRel ;   2975    Bool spRel ;
2976    Bool isVec ;   2976    Bool isVec ;
2977    HChar name[16] ;   2977    HChar name[16] ;
2978 };   2978 };
2979 typedef struct __anonstruct_StackBlock_113 StackBlock;   2979 typedef struct __anonstruct_StackBlock_113 StackBlock;
2980 struct __anonstruct_GlobalBlock_114 {   2980 struct __anonstruct_GlobalBlock_114 {
2981    Addr addr ;   2981    Addr addr ;
2982    SizeT szB ;   2982    SizeT szB ;
2983    Bool isVec ;   2983    Bool isVec ;
2984    HChar name[16] ;   2984    HChar name[16] ;
2985    HChar soname[16] ;   2985    HChar soname[16] ;
2986 };   2986 };
2987 typedef struct __anonstruct_GlobalBlock_114 GlobalBlock;   2987 typedef struct __anonstruct_GlobalBlock_114 GlobalBlock;
2988 struct _DebugInfo;   2988 struct _DebugInfo;
2989 typedef struct _DebugInfo DebugInfo;   2989 typedef struct _DebugInfo DebugInfo;
2990 enum __anonenum_VgSectKind_115 {   2990 enum __anonenum_VgSectKind_115 {
2991     Vg_SectUnknown = 0,   2991     Vg_SectUnknown = 0,
2992     Vg_SectText = 1,   2992     Vg_SectText = 1,
2993     Vg_SectData = 2,   2993     Vg_SectData = 2,
2994     Vg_SectBSS = 3,   2994     Vg_SectBSS = 3,
2995     Vg_SectGOT = 4,   2995     Vg_SectGOT = 4,
2996     Vg_SectPLT = 5,   2996     Vg_SectPLT = 5,
2997     Vg_SectGOTPLT = 6,   2997     Vg_SectGOTPLT = 6,
2998     Vg_SectOPD = 7   2998     Vg_SectOPD = 7
2999 } ;   2999 } ;
3000 typedef enum __anonenum_VgSectKind_115 VgSectKind;   3000 typedef enum __anonenum_VgSectKind_115 VgSectKind;
3001 struct _XArray;   3001 struct _XArray;
3002 typedef struct _XArray XArray;   3002 typedef struct _XArray XArray;
3003 struct _ExeContext;   3003 struct _ExeContext;
3004 typedef struct _ExeContext ExeContext;   3004 typedef struct _ExeContext ExeContext;
3005 enum __anonenum_VgRes_116 {   3005 enum __anonenum_VgRes_116 {
3006     Vg_LowRes = 0,   3006     Vg_LowRes = 0,
3007     Vg_MedRes = 1,   3007     Vg_MedRes = 1,
3008     Vg_HighRes = 2   3008     Vg_HighRes = 2
3009 } ;   3009 } ;
3010 typedef enum __anonenum_VgRes_116 VgRes;   3010 typedef enum __anonenum_VgRes_116 VgRes;
3011 typedef Int ErrorKind;   3011 typedef Int ErrorKind;
3012 struct _Error;   3012 struct _Error;
3013 typedef struct _Error Error;   3013 typedef struct _Error Error;
3014 typedef Int SuppKind;   3014 typedef Int SuppKind;
3015 struct _Supp;   3015 struct _Supp;
3016 typedef struct _Supp Supp;   3016 typedef struct _Supp Supp;
3017 enum __anonenum_CoreErrorKind_117 {   3017 enum __anonenum_CoreErrorKind_117 {
3018     ThreadErr = -1   3018     ThreadErr = -1
3019 } ;   3019 } ;
3020 typedef enum __anonenum_CoreErrorKind_117 CoreErrorKind;   3020 typedef enum __anonenum_CoreErrorKind_117 CoreErrorKind;
3021 struct vg_stat {   3021 struct vg_stat {
3022    ULong dev ;   3022    ULong dev ;
3023    ULong ino ;   3023    ULong ino ;
3024    ULong nlink ;   3024    ULong nlink ;
3025    UInt mode ;   3025    UInt mode ;
3026    UInt uid ;   3026    UInt uid ;
3027    UInt gid ;   3027    UInt gid ;
3028    ULong rdev ;   3028    ULong rdev ;
3029    Long size ;   3029    Long size ;
3030    ULong blksize ;   3030    ULong blksize ;
3031    ULong blocks ;   3031    ULong blocks ;
3032    ULong atime ;   3032    ULong atime ;
3033    ULong atime_nsec ;   3033    ULong atime_nsec ;
3034    ULong mtime ;   3034    ULong mtime ;
3035    ULong mtime_nsec ;   3035    ULong mtime_nsec ;
3036    ULong ctime ;   3036    ULong ctime ;
3037    ULong ctime_nsec ;   3037    ULong ctime_nsec ;
3038 };   3038 };
3039 struct __anonstruct_VgCallbackClosure_118 {   3039 struct __anonstruct_VgCallbackClosure_118 {
3040    Addr64 nraddr ;   3040    Addr64 nraddr ;
3041    Addr64 readdr ;   3041    Addr64 readdr ;
3042    ThreadId tid ;   3042    ThreadId tid ;
3043 };   3043 };
3044 typedef struct __anonstruct_VgCallbackClosure_118 VgCallbackClosure;   3044 typedef struct __anonstruct_VgCallbackClosure_118 VgCallbackClosure;
3045 enum __anonenum_CorePart_119 {   3045 enum __anonenum_CorePart_119 {
3046     Vg_CoreStartup = 1,   3046     Vg_CoreStartup = 1,
3047     Vg_CoreSignal = 2,   3047     Vg_CoreSignal = 2,
3048     Vg_CoreSysCall = 3,   3048     Vg_CoreSysCall = 3,
3049     Vg_CoreSysCallArgInMem = 4,   3049     Vg_CoreSysCallArgInMem = 4,
3050     Vg_CoreTranslate = 5,   3050     Vg_CoreTranslate = 5,
3051     Vg_CoreClientReq = 6   3051     Vg_CoreClientReq = 6
3052 } ;   3052 } ;
3053 typedef enum __anonenum_CorePart_119 CorePart;   3053 typedef enum __anonenum_CorePart_119 CorePart;
3054 struct __anonstruct_VgDetails_120 {   3054 struct __anonstruct_VgDetails_120 {
3055    Char *name ;   3055    Char *name ;
3056    Char *version ;   3056    Char *version ;
3057    Char *description ;   3057    Char *description ;
3058    Char *copyright_author ;   3058    Char *copyright_author ;
3059    Char *bug_reports_to ;   3059    Char *bug_reports_to ;
3060    UInt avg_translation_sizeB ;   3060    UInt avg_translation_sizeB ;
3061 };   3061 };
3062 typedef struct __anonstruct_VgDetails_120 VgDetails;   3062 typedef struct __anonstruct_VgDetails_120 VgDetails;
3063 struct __anonstruct_VgNeeds_121 {   3063 struct __anonstruct_VgNeeds_121 {
3064    Bool libc_freeres ;   3064    Bool libc_freeres ;
3065    Bool core_errors ;   3065    Bool core_errors ;
3066    Bool tool_errors ;   3066    Bool tool_errors ;
3067    Bool superblock_discards ;   3067    Bool superblock_discards ;
3068    Bool command_line_options ;   3068    Bool command_line_options ;
3069    Bool client_requests ;   3069    Bool client_requests ;
3070    Bool syscall_wrapper ;   3070    Bool syscall_wrapper ;
3071    Bool sanity_checks ;   3071    Bool sanity_checks ;
3072    Bool var_info ;   3072    Bool var_info ;
3073    Bool malloc_replacement ;   3073    Bool malloc_replacement ;
3074    Bool xml_output ;   3074    Bool xml_output ;
3075    Bool final_IR_tidy_pass ;   3075    Bool final_IR_tidy_pass ;
3076 };   3076 };
3077 typedef struct __anonstruct_VgNeeds_121 VgNeeds;   3077 typedef struct __anonstruct_VgNeeds_121 VgNeeds;
3078 struct __anonstruct_VgToolInterface_122 {   3078 struct __anonstruct_VgToolInterface_122 {
3079    void (*tool_pre_clo_init)(void) ;   3079    void (*tool_pre_clo_init)(void) ;
3080    void (*tool_post_clo_init)(void) ;   3080    void (*tool_post_clo_init)(void) ;
3081    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,   3081    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,
3082                             VexGuestExtents * , IRType  , IRType  ) ;   3082                             VexGuestExtents * , IRType  , IRType  ) ;
3083    void (*tool_fini)(Int  ) ;   3083    void (*tool_fini)(Int  ) ;
3084    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;   3084    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;
3085    void (*tool_before_pp_Error)(Error * ) ;   3085    void (*tool_before_pp_Error)(Error * ) ;
3086    void (*tool_pp_Error)(Error * ) ;   3086    void (*tool_pp_Error)(Error * ) ;
3087    Bool tool_show_ThreadIDs_for_errors ;   3087    Bool tool_show_ThreadIDs_for_errors ;
3088    UInt (*tool_update_extra)(Error * ) ;   3088    UInt (*tool_update_extra)(Error * ) ;
3089    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;   3089    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;
3090    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;   3090    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;
3091    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;   3091    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;
3092    Char *(*tool_get_error_name)(Error * ) ;   3092    Char *(*tool_get_error_name)(Error * ) ;
3093    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;   3093    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;
3094    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;   3094    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;
3095    Bool (*tool_process_cmd_line_option)(Char * ) ;   3095    Bool (*tool_process_cmd_line_option)(Char * ) ;
3096    void (*tool_print_usage)(void) ;   3096    void (*tool_print_usage)(void) ;
3097    void (*tool_print_debug_usage)(void) ;   3097    void (*tool_print_debug_usage)(void) ;
3098    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;   3098    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;
3099    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;   3099    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;
3100    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;   3100    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;
3101    Bool (*tool_cheap_sanity_check)(void) ;   3101    Bool (*tool_cheap_sanity_check)(void) ;
3102    Bool (*tool_expensive_sanity_check)(void) ;   3102    Bool (*tool_expensive_sanity_check)(void) ;
3103    void *(*tool_malloc)(ThreadId  , SizeT  ) ;   3103    void *(*tool_malloc)(ThreadId  , SizeT  ) ;
3104    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;   3104    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;
3105    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;   3105    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;
3106    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;   3106    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;
3107    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;   3107    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;
3108    void (*tool_free)(ThreadId  , void * ) ;   3108    void (*tool_free)(ThreadId  , void * ) ;
3109    void (*tool___builtin_delete)(ThreadId  , void * ) ;   3109    void (*tool___builtin_delete)(ThreadId  , void * ) ;
3110    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;   3110    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;
3111    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;   3111    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;
3112    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;   3112    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;
3113    SizeT tool_client_redzone_szB ;   3113    SizeT tool_client_redzone_szB ;
3114    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;   3114    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;
3115    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,   3115    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,
3116                                  ULong  ) ;   3116                                  ULong  ) ;
3117    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;   3117    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;
3118    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;   3118    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;
3119    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;   3119    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;
3120    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;   3120    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;
3121    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;   3121    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;
3122    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;   3122    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;
3123    void (*track_die_mem_brk)(Addr  , SizeT  ) ;   3123    void (*track_die_mem_brk)(Addr  , SizeT  ) ;
3124    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;   3124    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;
3125    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,   3125    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,
3126                                                                           UInt  ) ;   3126                                                                           UInt  ) ;
3127    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,   3127    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,
3128                                                                           UInt  ) ;   3128                                                                           UInt  ) ;
3129    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,   3129    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,
3130                                                                            UInt  ) ;   3130                                                                            UInt  ) ;
3131    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,   3131    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,
3132                                                                            UInt  ) ;   3132                                                                            UInt  ) ;
3133    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,   3133    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,
3134                                                                            UInt  ) ;   3134                                                                            UInt  ) ;
3135    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,   3135    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,
3136                                                                             UInt  ) ;   3136                                                                             UInt  ) ;
3137    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,   3137    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,
3138                                                                             UInt  ) ;   3138                                                                             UInt  ) ;
3139    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,   3139    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,
3140                                                                             UInt  ) ;   3140                                                                             UInt  ) ;
3141    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,   3141    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,
3142                                                                             UInt  ) ;   3142                                                                             UInt  ) ;
3143    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;   3143    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;
3144    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;   3144    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;
3145    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;   3145    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;
3146    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;   3146    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;
3147    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;   3147    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;
3148    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;   3148    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;
3149    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;   3149    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;
3150    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;   3150    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;
3151    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;   3151    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;
3152    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;   3152    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;
3153    void (*track_new_mem_stack)(Addr  , SizeT  ) ;   3153    void (*track_new_mem_stack)(Addr  , SizeT  ) ;
3154    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;   3154    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;
3155    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;   3155    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;
3156    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;   3156    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;
3157    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;   3157    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;
3158    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;   3158    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;
3159    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;   3159    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;
3160    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;   3160    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;
3161    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;   3161    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;
3162    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;   3162    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;
3163    void (*track_die_mem_stack)(Addr  , SizeT  ) ;   3163    void (*track_die_mem_stack)(Addr  , SizeT  ) ;
3164    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;   3164    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;
3165    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3165    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3166    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;   3166    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;
3167    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3167    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3168    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;   3168    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;
3169    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,   3169    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,
3170                               SizeT  ) ;   3170                               SizeT  ) ;
3171    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;   3171    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;
3172    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,   3172    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,
3173                                                   SizeT  , Addr  ) ;   3173                                                   SizeT  , Addr  ) ;
3174    void (*track_start_client_code)(ThreadId  , ULong  ) ;   3174    void (*track_start_client_code)(ThreadId  , ULong  ) ;
3175    void (*track_stop_client_code)(ThreadId  , ULong  ) ;   3175    void (*track_stop_client_code)(ThreadId  , ULong  ) ;
3176    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;   3176    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;
3177    void (*track_pre_thread_first_insn)(ThreadId  ) ;   3177    void (*track_pre_thread_first_insn)(ThreadId  ) ;
3178    void (*track_pre_thread_ll_exit)(ThreadId  ) ;   3178    void (*track_pre_thread_ll_exit)(ThreadId  ) ;
3179    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;   3179    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;
3180    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;   3180    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;
3181 };   3181 };
3182 typedef struct __anonstruct_VgToolInterface_122 VgToolInterface;   3182 typedef struct __anonstruct_VgToolInterface_122 VgToolInterface;
3183 enum __anonenum_SegKind_123 {   3183 enum __anonenum_SegKind_123 {
3184     SkFree = 0,   3184     SkFree = 0,
3185     SkAnonC = 1,   3185     SkAnonC = 1,
3186     SkAnonV = 2,   3186     SkAnonV = 2,
3187     SkFileC = 3,   3187     SkFileC = 3,
3188     SkFileV = 4,   3188     SkFileV = 4,
3189     SkShmC = 5,   3189     SkShmC = 5,
3190     SkResvn = 6   3190     SkResvn = 6
3191 } ;   3191 } ;
3192 typedef enum __anonenum_SegKind_123 SegKind;   3192 typedef enum __anonenum_SegKind_123 SegKind;
3193 enum __anonenum_ShrinkMode_124 {   3193 enum __anonenum_ShrinkMode_124 {
3194     SmLower = 0,   3194     SmLower = 0,
3195     SmFixed = 1,   3195     SmFixed = 1,
3196     SmUpper = 2   3196     SmUpper = 2
3197 } ;   3197 } ;
3198 typedef enum __anonenum_ShrinkMode_124 ShrinkMode;   3198 typedef enum __anonenum_ShrinkMode_124 ShrinkMode;
3199 struct __anonstruct_NSegment_125 {   3199 struct __anonstruct_NSegment_125 {
3200    SegKind kind ;   3200    SegKind kind ;
3201    Addr start ;   3201    Addr start ;
3202    Addr end ;   3202    Addr end ;
3203    ShrinkMode smode ;   3203    ShrinkMode smode ;
3204    ULong dev ;   3204    ULong dev ;
3205    ULong ino ;   3205    ULong ino ;
3206    Off64T offset ;   3206    Off64T offset ;
3207    UInt mode ;   3207    UInt mode ;
3208    Int fnIdx ;   3208    Int fnIdx ;
3209    Bool hasR ;   3209    Bool hasR ;
3210    Bool hasW ;   3210    Bool hasW ;
3211    Bool hasX ;   3211    Bool hasX ;
3212    Bool hasT ;   3212    Bool hasT ;
3213    Bool isCH ;   3213    Bool isCH ;
3214    Bool mark ;   3214    Bool mark ;
3215 };   3215 };
3216 typedef struct __anonstruct_NSegment_125 NSegment;   3216 typedef struct __anonstruct_NSegment_125 NSegment;
3217 enum __anonenum_rkind_127 {   3217 enum __anonenum_rkind_127 {
3218     MFixed = 0,   3218     MFixed = 0,
3219     MHint = 1,   3219     MHint = 1,
3220     MAny = 2   3220     MAny = 2
3221 } ;   3221 } ;
3222 struct __anonstruct_MapRequest_126 {   3222 struct __anonstruct_MapRequest_126 {
3223    enum __anonenum_rkind_127 rkind ;   3223    enum __anonenum_rkind_127 rkind ;
3224    Addr start ;   3224    Addr start ;
3225    Addr len ;   3225    Addr len ;
3226 };   3226 };
3227 typedef struct __anonstruct_MapRequest_126 MapRequest;   3227 typedef struct __anonstruct_MapRequest_126 MapRequest;
3228 struct __anonstruct_AixCodeSegChange_128 {   3228 struct __anonstruct_AixCodeSegChange_128 {
3229    Addr code_start ;   3229    Addr code_start ;
3230    Word code_len ;   3230    Word code_len ;
3231    Addr data_start ;   3231    Addr data_start ;
3232    Word data_len ;   3232    Word data_len ;
3233    UChar *file_name ;   3233    UChar *file_name ;
3234    UChar *mem_name ;   3234    UChar *mem_name ;
3235    Bool is_mainexe ;   3235    Bool is_mainexe ;
3236    Bool acquire ;   3236    Bool acquire ;
3237 };   3237 };
3238 typedef struct __anonstruct_AixCodeSegChange_128 AixCodeSegChange;   3238 typedef struct __anonstruct_AixCodeSegChange_128 AixCodeSegChange;
3239 struct __anonstruct_VgStack_129 {   3239 struct __anonstruct_VgStack_129 {
3240    HChar bytes[1064960] ;   3240    HChar bytes[1064960] ;
3241 };   3241 };
3242 typedef struct __anonstruct_VgStack_129 VgStack;   3242 typedef struct __anonstruct_VgStack_129 VgStack;
3243 struct __anonstruct_OrigFn_130 {   3243 struct __anonstruct_OrigFn_130 {
3244    unsigned int nraddr ;   3244    unsigned int nraddr ;
3245 };   3245 };
3246 typedef struct __anonstruct_OrigFn_130 OrigFn;   3246 typedef struct __anonstruct_OrigFn_130 OrigFn;
3247 enum __anonenum_Vg_ClientRequest_131 {   3247 enum __anonenum_Vg_ClientRequest_131 {
3248     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,   3248     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,
3249     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,   3249     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,
3250     VG_USERREQ__CLIENT_CALL0 = 4353,   3250     VG_USERREQ__CLIENT_CALL0 = 4353,
3251     VG_USERREQ__CLIENT_CALL1 = 4354,   3251     VG_USERREQ__CLIENT_CALL1 = 4354,
3252     VG_USERREQ__CLIENT_CALL2 = 4355,   3252     VG_USERREQ__CLIENT_CALL2 = 4355,
3253     VG_USERREQ__CLIENT_CALL3 = 4356,   3253     VG_USERREQ__CLIENT_CALL3 = 4356,
3254     VG_USERREQ__COUNT_ERRORS = 4609,   3254     VG_USERREQ__COUNT_ERRORS = 4609,
3255     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,   3255     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,
3256     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,   3256     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,
3257     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,   3257     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,
3258     VG_USERREQ__FREELIKE_BLOCK = 4866,   3258     VG_USERREQ__FREELIKE_BLOCK = 4866,
3259     VG_USERREQ__CREATE_MEMPOOL = 4867,   3259     VG_USERREQ__CREATE_MEMPOOL = 4867,
3260     VG_USERREQ__DESTROY_MEMPOOL = 4868,   3260     VG_USERREQ__DESTROY_MEMPOOL = 4868,
3261     VG_USERREQ__MEMPOOL_ALLOC = 4869,   3261     VG_USERREQ__MEMPOOL_ALLOC = 4869,
3262     VG_USERREQ__MEMPOOL_FREE = 4870,   3262     VG_USERREQ__MEMPOOL_FREE = 4870,
3263     VG_USERREQ__MEMPOOL_TRIM = 4871,   3263     VG_USERREQ__MEMPOOL_TRIM = 4871,
3264     VG_USERREQ__MOVE_MEMPOOL = 4872,   3264     VG_USERREQ__MOVE_MEMPOOL = 4872,
3265     VG_USERREQ__MEMPOOL_CHANGE = 4873,   3265     VG_USERREQ__MEMPOOL_CHANGE = 4873,
3266     VG_USERREQ__MEMPOOL_EXISTS = 4874,   3266     VG_USERREQ__MEMPOOL_EXISTS = 4874,
3267     VG_USERREQ__PRINTF = 5121,   3267     VG_USERREQ__PRINTF = 5121,
3268     VG_USERREQ__PRINTF_BACKTRACE = 5122,   3268     VG_USERREQ__PRINTF_BACKTRACE = 5122,
3269     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,   3269     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,
3270     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,   3270     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,
3271     VG_USERREQ__STACK_REGISTER = 5377,   3271     VG_USERREQ__STACK_REGISTER = 5377,
3272     VG_USERREQ__STACK_DEREGISTER = 5378,   3272     VG_USERREQ__STACK_DEREGISTER = 5378,
3273     VG_USERREQ__STACK_CHANGE = 5379,   3273     VG_USERREQ__STACK_CHANGE = 5379,
3274     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,   3274     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,
3275     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889   3275     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889
3276 } ;   3276 } ;
3277 typedef enum __anonenum_Vg_ClientRequest_131 Vg_ClientRequest;   3277 typedef enum __anonenum_Vg_ClientRequest_131 Vg_ClientRequest;
3278 typedef unsigned char gdb_byte;   3278 typedef unsigned char gdb_byte;
3279 typedef Addr CORE_ADDR;   3279 typedef Addr CORE_ADDR;
3280 struct inferior_list_entry;   3280 struct inferior_list_entry;
3281 struct inferior_list {   3281 struct inferior_list {
3282    struct inferior_list_entry *head ;   3282    struct inferior_list_entry *head ;
3283    struct inferior_list_entry *tail ;   3283    struct inferior_list_entry *tail ;
3284 };   3284 };
3285 struct inferior_list_entry {   3285 struct inferior_list_entry {
3286    unsigned long id ;   3286    unsigned long id ;
3287    struct inferior_list_entry *next ;   3287    struct inferior_list_entry *next ;
3288 };   3288 };
3289 struct thread_info;   3289 struct thread_info;
3290 struct thread_info;   3290 struct thread_info;
3291 struct inferior_list_entry;   3291 struct inferior_list_entry;
3292 struct reg;   3292 struct reg;
3293 enum target_signal {   3293 enum target_signal {
3294     TARGET_SIGNAL_0 = 0,   3294     TARGET_SIGNAL_0 = 0,
3295     TARGET_SIGNAL_FIRST = 0,   3295     TARGET_SIGNAL_FIRST = 0,
3296     TARGET_SIGNAL_HUP = 1,   3296     TARGET_SIGNAL_HUP = 1,
3297     TARGET_SIGNAL_INT = 2,   3297     TARGET_SIGNAL_INT = 2,
3298     TARGET_SIGNAL_QUIT = 3,   3298     TARGET_SIGNAL_QUIT = 3,
3299     TARGET_SIGNAL_ILL = 4,   3299     TARGET_SIGNAL_ILL = 4,
3300     TARGET_SIGNAL_TRAP = 5,   3300     TARGET_SIGNAL_TRAP = 5,
3301     TARGET_SIGNAL_ABRT = 6,   3301     TARGET_SIGNAL_ABRT = 6,
3302     TARGET_SIGNAL_EMT = 7,   3302     TARGET_SIGNAL_EMT = 7,
3303     TARGET_SIGNAL_FPE = 8,   3303     TARGET_SIGNAL_FPE = 8,
3304     TARGET_SIGNAL_KILL = 9,   3304     TARGET_SIGNAL_KILL = 9,
3305     TARGET_SIGNAL_BUS = 10,   3305     TARGET_SIGNAL_BUS = 10,
3306     TARGET_SIGNAL_SEGV = 11,   3306     TARGET_SIGNAL_SEGV = 11,
3307     TARGET_SIGNAL_SYS = 12,   3307     TARGET_SIGNAL_SYS = 12,
3308     TARGET_SIGNAL_PIPE = 13,   3308     TARGET_SIGNAL_PIPE = 13,
3309     TARGET_SIGNAL_ALRM = 14,   3309     TARGET_SIGNAL_ALRM = 14,
3310     TARGET_SIGNAL_TERM = 15,   3310     TARGET_SIGNAL_TERM = 15,
3311     TARGET_SIGNAL_URG = 16,   3311     TARGET_SIGNAL_URG = 16,
3312     TARGET_SIGNAL_STOP = 17,   3312     TARGET_SIGNAL_STOP = 17,
3313     TARGET_SIGNAL_TSTP = 18,   3313     TARGET_SIGNAL_TSTP = 18,
3314     TARGET_SIGNAL_CONT = 19,   3314     TARGET_SIGNAL_CONT = 19,
3315     TARGET_SIGNAL_CHLD = 20,   3315     TARGET_SIGNAL_CHLD = 20,
3316     TARGET_SIGNAL_TTIN = 21,   3316     TARGET_SIGNAL_TTIN = 21,
3317     TARGET_SIGNAL_TTOU = 22,   3317     TARGET_SIGNAL_TTOU = 22,
3318     TARGET_SIGNAL_IO = 23,   3318     TARGET_SIGNAL_IO = 23,
3319     TARGET_SIGNAL_XCPU = 24,   3319     TARGET_SIGNAL_XCPU = 24,
3320     TARGET_SIGNAL_XFSZ = 25,   3320     TARGET_SIGNAL_XFSZ = 25,
3321     TARGET_SIGNAL_VTALRM = 26,   3321     TARGET_SIGNAL_VTALRM = 26,
3322     TARGET_SIGNAL_PROF = 27,   3322     TARGET_SIGNAL_PROF = 27,
3323     TARGET_SIGNAL_WINCH = 28,   3323     TARGET_SIGNAL_WINCH = 28,
3324     TARGET_SIGNAL_LOST = 29,   3324     TARGET_SIGNAL_LOST = 29,
3325     TARGET_SIGNAL_USR1 = 30,   3325     TARGET_SIGNAL_USR1 = 30,
3326     TARGET_SIGNAL_USR2 = 31,   3326     TARGET_SIGNAL_USR2 = 31,
3327     TARGET_SIGNAL_PWR = 32,   3327     TARGET_SIGNAL_PWR = 32,
3328     TARGET_SIGNAL_POLL = 33,   3328     TARGET_SIGNAL_POLL = 33,
3329     TARGET_SIGNAL_WIND = 34,   3329     TARGET_SIGNAL_WIND = 34,
3330     TARGET_SIGNAL_PHONE = 35,   3330     TARGET_SIGNAL_PHONE = 35,
3331     TARGET_SIGNAL_WAITING = 36,   3331     TARGET_SIGNAL_WAITING = 36,
3332     TARGET_SIGNAL_LWP = 37,   3332     TARGET_SIGNAL_LWP = 37,
3333     TARGET_SIGNAL_DANGER = 38,   3333     TARGET_SIGNAL_DANGER = 38,
3334     TARGET_SIGNAL_GRANT = 39,   3334     TARGET_SIGNAL_GRANT = 39,
3335     TARGET_SIGNAL_RETRACT = 40,   3335     TARGET_SIGNAL_RETRACT = 40,
3336     TARGET_SIGNAL_MSG = 41,   3336     TARGET_SIGNAL_MSG = 41,
3337     TARGET_SIGNAL_SOUND = 42,   3337     TARGET_SIGNAL_SOUND = 42,
3338     TARGET_SIGNAL_SAK = 43,   3338     TARGET_SIGNAL_SAK = 43,
3339     TARGET_SIGNAL_PRIO = 44,   3339     TARGET_SIGNAL_PRIO = 44,
3340     TARGET_SIGNAL_REALTIME_33 = 45,   3340     TARGET_SIGNAL_REALTIME_33 = 45,
3341     TARGET_SIGNAL_REALTIME_34 = 46,   3341     TARGET_SIGNAL_REALTIME_34 = 46,
3342     TARGET_SIGNAL_REALTIME_35 = 47,   3342     TARGET_SIGNAL_REALTIME_35 = 47,
3343     TARGET_SIGNAL_REALTIME_36 = 48,   3343     TARGET_SIGNAL_REALTIME_36 = 48,
3344     TARGET_SIGNAL_REALTIME_37 = 49,   3344     TARGET_SIGNAL_REALTIME_37 = 49,
3345     TARGET_SIGNAL_REALTIME_38 = 50,   3345     TARGET_SIGNAL_REALTIME_38 = 50,
3346     TARGET_SIGNAL_REALTIME_39 = 51,   3346     TARGET_SIGNAL_REALTIME_39 = 51,
3347     TARGET_SIGNAL_REALTIME_40 = 52,   3347     TARGET_SIGNAL_REALTIME_40 = 52,
3348     TARGET_SIGNAL_REALTIME_41 = 53,   3348     TARGET_SIGNAL_REALTIME_41 = 53,
3349     TARGET_SIGNAL_REALTIME_42 = 54,   3349     TARGET_SIGNAL_REALTIME_42 = 54,
3350     TARGET_SIGNAL_REALTIME_43 = 55,   3350     TARGET_SIGNAL_REALTIME_43 = 55,
3351     TARGET_SIGNAL_REALTIME_44 = 56,   3351     TARGET_SIGNAL_REALTIME_44 = 56,
3352     TARGET_SIGNAL_REALTIME_45 = 57,   3352     TARGET_SIGNAL_REALTIME_45 = 57,
3353     TARGET_SIGNAL_REALTIME_46 = 58,   3353     TARGET_SIGNAL_REALTIME_46 = 58,
3354     TARGET_SIGNAL_REALTIME_47 = 59,   3354     TARGET_SIGNAL_REALTIME_47 = 59,
3355     TARGET_SIGNAL_REALTIME_48 = 60,   3355     TARGET_SIGNAL_REALTIME_48 = 60,
3356     TARGET_SIGNAL_REALTIME_49 = 61,   3356     TARGET_SIGNAL_REALTIME_49 = 61,
3357     TARGET_SIGNAL_REALTIME_50 = 62,   3357     TARGET_SIGNAL_REALTIME_50 = 62,
3358     TARGET_SIGNAL_REALTIME_51 = 63,   3358     TARGET_SIGNAL_REALTIME_51 = 63,
3359     TARGET_SIGNAL_REALTIME_52 = 64,   3359     TARGET_SIGNAL_REALTIME_52 = 64,
3360     TARGET_SIGNAL_REALTIME_53 = 65,   3360     TARGET_SIGNAL_REALTIME_53 = 65,
3361     TARGET_SIGNAL_REALTIME_54 = 66,   3361     TARGET_SIGNAL_REALTIME_54 = 66,
3362     TARGET_SIGNAL_REALTIME_55 = 67,   3362     TARGET_SIGNAL_REALTIME_55 = 67,
3363     TARGET_SIGNAL_REALTIME_56 = 68,   3363     TARGET_SIGNAL_REALTIME_56 = 68,
3364     TARGET_SIGNAL_REALTIME_57 = 69,   3364     TARGET_SIGNAL_REALTIME_57 = 69,
3365     TARGET_SIGNAL_REALTIME_58 = 70,   3365     TARGET_SIGNAL_REALTIME_58 = 70,
3366     TARGET_SIGNAL_REALTIME_59 = 71,   3366     TARGET_SIGNAL_REALTIME_59 = 71,
3367     TARGET_SIGNAL_REALTIME_60 = 72,   3367     TARGET_SIGNAL_REALTIME_60 = 72,
3368     TARGET_SIGNAL_REALTIME_61 = 73,   3368     TARGET_SIGNAL_REALTIME_61 = 73,
3369     TARGET_SIGNAL_REALTIME_62 = 74,   3369     TARGET_SIGNAL_REALTIME_62 = 74,
3370     TARGET_SIGNAL_REALTIME_63 = 75,   3370     TARGET_SIGNAL_REALTIME_63 = 75,
3371     TARGET_SIGNAL_CANCEL = 76,   3371     TARGET_SIGNAL_CANCEL = 76,
3372     TARGET_SIGNAL_REALTIME_32 = 77,   3372     TARGET_SIGNAL_REALTIME_32 = 77,
3373     TARGET_SIGNAL_REALTIME_64 = 78,   3373     TARGET_SIGNAL_REALTIME_64 = 78,
3374     TARGET_SIGNAL_REALTIME_65 = 79,   3374     TARGET_SIGNAL_REALTIME_65 = 79,
3375     TARGET_SIGNAL_REALTIME_66 = 80,   3375     TARGET_SIGNAL_REALTIME_66 = 80,
3376     TARGET_SIGNAL_REALTIME_67 = 81,   3376     TARGET_SIGNAL_REALTIME_67 = 81,
3377     TARGET_SIGNAL_REALTIME_68 = 82,   3377     TARGET_SIGNAL_REALTIME_68 = 82,
3378     TARGET_SIGNAL_REALTIME_69 = 83,   3378     TARGET_SIGNAL_REALTIME_69 = 83,
3379     TARGET_SIGNAL_REALTIME_70 = 84,   3379     TARGET_SIGNAL_REALTIME_70 = 84,
3380     TARGET_SIGNAL_REALTIME_71 = 85,   3380     TARGET_SIGNAL_REALTIME_71 = 85,
3381     TARGET_SIGNAL_REALTIME_72 = 86,   3381     TARGET_SIGNAL_REALTIME_72 = 86,
3382     TARGET_SIGNAL_REALTIME_73 = 87,   3382     TARGET_SIGNAL_REALTIME_73 = 87,
3383     TARGET_SIGNAL_REALTIME_74 = 88,   3383     TARGET_SIGNAL_REALTIME_74 = 88,
3384     TARGET_SIGNAL_REALTIME_75 = 89,   3384     TARGET_SIGNAL_REALTIME_75 = 89,
3385     TARGET_SIGNAL_REALTIME_76 = 90,   3385     TARGET_SIGNAL_REALTIME_76 = 90,
3386     TARGET_SIGNAL_REALTIME_77 = 91,   3386     TARGET_SIGNAL_REALTIME_77 = 91,
3387     TARGET_SIGNAL_REALTIME_78 = 92,   3387     TARGET_SIGNAL_REALTIME_78 = 92,
3388     TARGET_SIGNAL_REALTIME_79 = 93,   3388     TARGET_SIGNAL_REALTIME_79 = 93,
3389     TARGET_SIGNAL_REALTIME_80 = 94,   3389     TARGET_SIGNAL_REALTIME_80 = 94,
3390     TARGET_SIGNAL_REALTIME_81 = 95,   3390     TARGET_SIGNAL_REALTIME_81 = 95,
3391     TARGET_SIGNAL_REALTIME_82 = 96,   3391     TARGET_SIGNAL_REALTIME_82 = 96,
3392     TARGET_SIGNAL_REALTIME_83 = 97,   3392     TARGET_SIGNAL_REALTIME_83 = 97,
3393     TARGET_SIGNAL_REALTIME_84 = 98,   3393     TARGET_SIGNAL_REALTIME_84 = 98,
3394     TARGET_SIGNAL_REALTIME_85 = 99,   3394     TARGET_SIGNAL_REALTIME_85 = 99,
3395     TARGET_SIGNAL_REALTIME_86 = 100,   3395     TARGET_SIGNAL_REALTIME_86 = 100,
3396     TARGET_SIGNAL_REALTIME_87 = 101,   3396     TARGET_SIGNAL_REALTIME_87 = 101,
3397     TARGET_SIGNAL_REALTIME_88 = 102,   3397     TARGET_SIGNAL_REALTIME_88 = 102,
3398     TARGET_SIGNAL_REALTIME_89 = 103,   3398     TARGET_SIGNAL_REALTIME_89 = 103,
3399     TARGET_SIGNAL_REALTIME_90 = 104,   3399     TARGET_SIGNAL_REALTIME_90 = 104,
3400     TARGET_SIGNAL_REALTIME_91 = 105,   3400     TARGET_SIGNAL_REALTIME_91 = 105,
3401     TARGET_SIGNAL_REALTIME_92 = 106,   3401     TARGET_SIGNAL_REALTIME_92 = 106,
3402     TARGET_SIGNAL_REALTIME_93 = 107,   3402     TARGET_SIGNAL_REALTIME_93 = 107,
3403     TARGET_SIGNAL_REALTIME_94 = 108,   3403     TARGET_SIGNAL_REALTIME_94 = 108,
3404     TARGET_SIGNAL_REALTIME_95 = 109,   3404     TARGET_SIGNAL_REALTIME_95 = 109,
3405     TARGET_SIGNAL_REALTIME_96 = 110,   3405     TARGET_SIGNAL_REALTIME_96 = 110,
3406     TARGET_SIGNAL_REALTIME_97 = 111,   3406     TARGET_SIGNAL_REALTIME_97 = 111,
3407     TARGET_SIGNAL_REALTIME_98 = 112,   3407     TARGET_SIGNAL_REALTIME_98 = 112,
3408     TARGET_SIGNAL_REALTIME_99 = 113,   3408     TARGET_SIGNAL_REALTIME_99 = 113,
3409     TARGET_SIGNAL_REALTIME_100 = 114,   3409     TARGET_SIGNAL_REALTIME_100 = 114,
3410     TARGET_SIGNAL_REALTIME_101 = 115,   3410     TARGET_SIGNAL_REALTIME_101 = 115,
3411     TARGET_SIGNAL_REALTIME_102 = 116,   3411     TARGET_SIGNAL_REALTIME_102 = 116,
3412     TARGET_SIGNAL_REALTIME_103 = 117,   3412     TARGET_SIGNAL_REALTIME_103 = 117,
3413     TARGET_SIGNAL_REALTIME_104 = 118,   3413     TARGET_SIGNAL_REALTIME_104 = 118,
3414     TARGET_SIGNAL_REALTIME_105 = 119,   3414     TARGET_SIGNAL_REALTIME_105 = 119,
3415     TARGET_SIGNAL_REALTIME_106 = 120,   3415     TARGET_SIGNAL_REALTIME_106 = 120,
3416     TARGET_SIGNAL_REALTIME_107 = 121,   3416     TARGET_SIGNAL_REALTIME_107 = 121,
3417     TARGET_SIGNAL_REALTIME_108 = 122,   3417     TARGET_SIGNAL_REALTIME_108 = 122,
3418     TARGET_SIGNAL_REALTIME_109 = 123,   3418     TARGET_SIGNAL_REALTIME_109 = 123,
3419     TARGET_SIGNAL_REALTIME_110 = 124,   3419     TARGET_SIGNAL_REALTIME_110 = 124,
3420     TARGET_SIGNAL_REALTIME_111 = 125,   3420     TARGET_SIGNAL_REALTIME_111 = 125,
3421     TARGET_SIGNAL_REALTIME_112 = 126,   3421     TARGET_SIGNAL_REALTIME_112 = 126,
3422     TARGET_SIGNAL_REALTIME_113 = 127,   3422     TARGET_SIGNAL_REALTIME_113 = 127,
3423     TARGET_SIGNAL_REALTIME_114 = 128,   3423     TARGET_SIGNAL_REALTIME_114 = 128,
3424     TARGET_SIGNAL_REALTIME_115 = 129,   3424     TARGET_SIGNAL_REALTIME_115 = 129,
3425     TARGET_SIGNAL_REALTIME_116 = 130,   3425     TARGET_SIGNAL_REALTIME_116 = 130,
3426     TARGET_SIGNAL_REALTIME_117 = 131,   3426     TARGET_SIGNAL_REALTIME_117 = 131,
3427     TARGET_SIGNAL_REALTIME_118 = 132,   3427     TARGET_SIGNAL_REALTIME_118 = 132,
3428     TARGET_SIGNAL_REALTIME_119 = 133,   3428     TARGET_SIGNAL_REALTIME_119 = 133,
3429     TARGET_SIGNAL_REALTIME_120 = 134,   3429     TARGET_SIGNAL_REALTIME_120 = 134,
3430     TARGET_SIGNAL_REALTIME_121 = 135,   3430     TARGET_SIGNAL_REALTIME_121 = 135,
3431     TARGET_SIGNAL_REALTIME_122 = 136,   3431     TARGET_SIGNAL_REALTIME_122 = 136,
3432     TARGET_SIGNAL_REALTIME_123 = 137,   3432     TARGET_SIGNAL_REALTIME_123 = 137,
3433     TARGET_SIGNAL_REALTIME_124 = 138,   3433     TARGET_SIGNAL_REALTIME_124 = 138,
3434     TARGET_SIGNAL_REALTIME_125 = 139,   3434     TARGET_SIGNAL_REALTIME_125 = 139,
3435     TARGET_SIGNAL_REALTIME_126 = 140,   3435     TARGET_SIGNAL_REALTIME_126 = 140,
3436     TARGET_SIGNAL_REALTIME_127 = 141,   3436     TARGET_SIGNAL_REALTIME_127 = 141,
3437     TARGET_SIGNAL_INFO = 142,   3437     TARGET_SIGNAL_INFO = 142,
3438     TARGET_SIGNAL_UNKNOWN = 143,   3438     TARGET_SIGNAL_UNKNOWN = 143,
3439     TARGET_SIGNAL_DEFAULT = 144,   3439     TARGET_SIGNAL_DEFAULT = 144,
3440     TARGET_EXC_BAD_ACCESS = 145,   3440     TARGET_EXC_BAD_ACCESS = 145,
3441     TARGET_EXC_BAD_INSTRUCTION = 146,   3441     TARGET_EXC_BAD_INSTRUCTION = 146,
3442     TARGET_EXC_ARITHMETIC = 147,   3442     TARGET_EXC_ARITHMETIC = 147,
3443     TARGET_EXC_EMULATION = 148,   3443     TARGET_EXC_EMULATION = 148,
3444     TARGET_EXC_SOFTWARE = 149,   3444     TARGET_EXC_SOFTWARE = 149,
3445     TARGET_EXC_BREAKPOINT = 150,   3445     TARGET_EXC_BREAKPOINT = 150,
3446     TARGET_SIGNAL_LAST = 151   3446     TARGET_SIGNAL_LAST = 151
3447 } ;   3447 } ;
3448 struct thread_resume {   3448 struct thread_resume {
3449    unsigned long thread ;   3449    unsigned long thread ;
3450    int leave_stopped ;   3450    int leave_stopped ;
3451    int step ;   3451    int step ;
3452    int sig ;   3452    int sig ;
3453 };   3453 };
3454 struct target_ops {   3454 struct target_ops {
3455    int (*thread_alive)(unsigned long pid ) ;   3455    int (*thread_alive)(unsigned long pid ) ;
3456    void (*resume)(struct thread_resume *resume_info ) ;   3456    void (*resume)(struct thread_resume *resume_info ) ;
3457    unsigned char (*wait)(char *status ) ;   3457    unsigned char (*wait)(char *status ) ;
3458    void (*fetch_registers)(int regno ) ;   3458    void (*fetch_registers)(int regno ) ;
3459    void (*store_registers)(int regno ) ;   3459    void (*store_registers)(int regno ) ;
3460    int (*read_memory)(CORE_ADDR memaddr , unsigned char *myaddr , int len ) ;   3460    int (*read_memory)(CORE_ADDR memaddr , unsigned char *myaddr , int len ) ;
3461    int (*write_memory)(CORE_ADDR memaddr , unsigned char const   *myaddr ,   3461    int (*write_memory)(CORE_ADDR memaddr , unsigned char const   *myaddr ,
3462                        int len ) ;   3462                        int len ) ;
3463    void (*send_signal)(int  ) ;   3463    void (*send_signal)(int  ) ;
3464    char *(*target_xml)(void) ;   3464    char *(*target_xml)(void) ;
3465    char *(*shadow_target_xml)(void) ;   3465    char *(*shadow_target_xml)(void) ;
3466    int (*insert_watchpoint)(char type , CORE_ADDR addr , int len ) ;   3466    int (*insert_watchpoint)(char type , CORE_ADDR addr , int len ) ;
3467    int (*remove_watchpoint)(char type , CORE_ADDR addr , int len ) ;   3467    int (*remove_watchpoint)(char type , CORE_ADDR addr , int len ) ;
3468    int (*stopped_by_watchpoint)(void) ;   3468    int (*stopped_by_watchpoint)(void) ;
3469    CORE_ADDR (*stopped_data_address)(void) ;   3469    CORE_ADDR (*stopped_data_address)(void) ;
3470 };   3470 };
3471 enum __anonenum_transfer_direction_132 {   3471 enum __anonenum_transfer_direction_132 {
3472     valgrind_to_gdbserver = 0,   3472     valgrind_to_gdbserver = 0,
3473     gdbserver_to_valgrind = 1   3473     gdbserver_to_valgrind = 1
3474 } ;   3474 } ;
3475 typedef enum __anonenum_transfer_direction_132 transfer_direction;   3475 typedef enum __anonenum_transfer_direction_132 transfer_direction;
3476 enum __anonenum_CallReason_133 {   3476 enum __anonenum_CallReason_133 {
3477     init_reason = 0,   3477     init_reason = 0,
3478     vgdb_reason = 1,   3478     vgdb_reason = 1,
3479     core_reason = 2,   3479     core_reason = 2,
3480     break_reason = 3,   3480     break_reason = 3,
3481     watch_reason = 4,   3481     watch_reason = 4,
3482     signal_reason = 5   3482     signal_reason = 5
3483 } ;   3483 } ;
3484 typedef enum __anonenum_CallReason_133 CallReason;   3484 typedef enum __anonenum_CallReason_133 CallReason;
3485 enum __anonenum_GS_Kind_134 {   3485 enum __anonenum_GS_Kind_134 {
3486     GS_break = 0,   3486     GS_break = 0,
3487     GS_jump = 1   3487     GS_jump = 1
3488 } ;   3488 } ;
3489 typedef enum __anonenum_GS_Kind_134 GS_Kind;   3489 typedef enum __anonenum_GS_Kind_134 GS_Kind;
3490 struct _GS_Address {   3490 struct _GS_Address {
3491    struct _GS_Address *next ;   3491    struct _GS_Address *next ;
3492    Addr addr ;   3492    Addr addr ;
3493    GS_Kind kind ;   3493    GS_Kind kind ;
3494 };   3494 };
3495 typedef struct _GS_Address GS_Address;   3495 typedef struct _GS_Address GS_Address;
3496 struct _GS_Watch {   3496 struct _GS_Watch {
3497    struct _GS_Watch *next ;   3497    struct _GS_Watch *next ;
3498    Addr addr ;   3498    Addr addr ;
3499    SizeT len ;   3499    SizeT len ;
3500    PointKind kind ;   3500    PointKind kind ;
3501 };   3501 };
3502 typedef struct _GS_Watch GS_Watch;   3502 typedef struct _GS_Watch GS_Watch;
3503 struct mon_out_buf {   3503 struct mon_out_buf {
3504    char buf[8190] ;   3504    char buf[8190] ;
3505    int next ;   3505    int next ;
3506    UInt ret ;   3506    UInt ret ;
3507 };   3507 };
3508 __inline static Bool toBool(Int x )   3508 __inline static Bool toBool(Int x )
3509 {   3509 {
3510   Int r ;   3510   Int r ;
3511   int tmp ;   3511   int tmp ;
3512     3512  
3513   {   3513   {
3514   if (x == 0) {   3514   if (x == 0) {
3515     tmp = (int )((Bool )0);   3515     tmp = (int )((Bool )0);
3516   } else {   3516   } else {
3517     tmp = (int )((Bool )1);   3517     tmp = (int )((Bool )1);
3518   }   3518   }
3519   r = tmp;   3519   r = tmp;
3520   return ((Bool )r);   3520   return ((Bool )r);
3521 }   3521 }
3522 }   3522 }
3523 __inline static UChar toUChar(Int x )   3523 __inline static UChar toUChar(Int x )
3524 {   3524 {
3525     3525  
3526     3526  
3527   {   3527   {
3528   x &= 255;   3528   x &= 255;
3529   return ((UChar )x);   3529   return ((UChar )x);
3530 }   3530 }
3531 }   3531 }
3532 __inline static HChar toHChar(Int x )   3532 __inline static HChar toHChar(Int x )
3533 {   3533 {
3534     3534  
3535     3535  
3536   {   3536   {
3537   x &= 255;   3537   x &= 255;
3538   return ((HChar )x);   3538   return ((HChar )x);
3539 }   3539 }
3540 }   3540 }
3541 __inline static UShort toUShort(Int x )   3541 __inline static UShort toUShort(Int x )
3542 {   3542 {
3543     3543  
3544     3544  
3545   {   3545   {
3546   x &= 65535;   3546   x &= 65535;
3547   return ((UShort )x);   3547   return ((UShort )x);
3548 }   3548 }
3549 }   3549 }
3550 __inline static Short toShort(Int x )   3550 __inline static Short toShort(Int x )
3551 {   3551 {
3552     3552  
3553     3553  
3554   {   3554   {
3555   x &= 65535;   3555   x &= 65535;
3556   return ((Short )x);   3556   return ((Short )x);
3557 }   3557 }
3558 }   3558 }
3559 __inline static UInt toUInt(Long x )   3559 __inline static UInt toUInt(Long x )
3560 {   3560 {
3561     3561  
3562     3562  
3563   {   3563   {
3564   x &= 4294967295LL;   3564   x &= 4294967295LL;
3565   return ((UInt )x);   3565   return ((UInt )x);
3566 }   3566 }
3567 }   3567 }
3568 __inline static ULong Ptr_to_ULong(void *p )   3568 __inline static ULong Ptr_to_ULong(void *p )
3569 {   3569 {
3570   UInt w ;   3570   UInt w ;
3571     3571  
3572   {   3572   {
3573   w = (UInt )p;   3573   w = (UInt )p;
3574   return ((ULong )w);   3574   return ((ULong )w);
3575 }   3575 }
3576 }   3576 }
3577 __inline static void *ULong_to_Ptr(ULong n )   3577 __inline static void *ULong_to_Ptr(ULong n )
3578 {   3578 {
3579   UInt w ;   3579   UInt w ;
3580     3580  
3581   {   3581   {
3582   w = (UInt )n;   3582   w = (UInt )n;
3583   return ((void *)w);   3583   return ((void *)w);
3584 }   3584 }
3585 }   3585 }
3586 __inline static Bool sr_isError(SysRes sr )   3586 __inline static Bool sr_isError(SysRes sr )
3587 {   3587 {
3588     3588  
3589     3589  
3590   {   3590   {
3591   return (sr._isError);   3591   return (sr._isError);
3592 }   3592 }
3593 }   3593 }
3594 __inline static UWord sr_Res(SysRes sr )   3594 __inline static UWord sr_Res(SysRes sr )
3595 {   3595 {
3596   UWord tmp ;   3596   UWord tmp ;
3597     3597  
3598   {   3598   {
3599   if (sr._isError) {   3599   if (sr._isError) {
3600     tmp = (UWord )0;   3600     tmp = (UWord )0;
3601   } else {   3601   } else {
3602     tmp = sr._val;   3602     tmp = sr._val;
3603   }   3603   }
3604   return (tmp);   3604   return (tmp);
3605 }   3605 }
3606 }   3606 }
3607 __inline static UWord sr_ResHI(SysRes sr )   3607 __inline static UWord sr_ResHI(SysRes sr )
3608 {   3608 {
3609     3609  
3610     3610  
3611   {   3611   {
3612   return ((UWord )0);   3612   return ((UWord )0);
3613 }   3613 }
3614 }   3614 }
3615 __inline static UWord sr_Err(SysRes sr )   3615 __inline static UWord sr_Err(SysRes sr )
3616 {   3616 {
3617   UWord tmp ;   3617   UWord tmp ;
3618     3618  
3619   {   3619   {
3620   if (sr._isError) {   3620   if (sr._isError) {
3621     tmp = sr._val;   3621     tmp = sr._val;
3622   } else {   3622   } else {
3623     tmp = (UWord )0;   3623     tmp = (UWord )0;
3624   }   3624   }
3625   return (tmp);   3625   return (tmp);
3626 }   3626 }
3627 }   3627 }
3628 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )   3628 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )
3629 {   3629 {
3630   int tmp ;   3630   int tmp ;
3631     3631  
3632   {   3632   {
3633   if (sr1._val == sr2._val) {   3633   if (sr1._val == sr2._val) {
3634     if (sr1._isError) {   3634     if (sr1._isError) {
3635       if (sr2._isError) {   3635       if (sr2._isError) {
3636         tmp = 1;   3636         tmp = 1;
3637       } else {   3637       } else {
3638         goto _L;   3638         goto _L;
3639       }   3639       }
3640     } else   3640     } else
3641     _L: /* CIL Label */   3641     _L: /* CIL Label */
3642     if (! sr1._isError) {   3642     if (! sr1._isError) {
3643       if (! sr2._isError) {   3643       if (! sr2._isError) {
3644         tmp = 1;   3644         tmp = 1;
3645       } else {   3645       } else {
3646         tmp = 0;   3646         tmp = 0;
3647       }   3647       }
3648     } else {   3648     } else {
3649       tmp = 0;   3649       tmp = 0;
3650     }   3650     }
3651   } else {   3651   } else {
3652     tmp = 0;   3652     tmp = 0;
3653   }   3653   }
3654   return ((Bool )tmp);   3654   return ((Bool )tmp);
3655 }   3655 }
3656 }   3656 }
3657 extern void ppIRType(IRType  ) ;   3657 extern void ppIRType(IRType  ) ;
3658 extern Int sizeofIRType(IRType  ) ;   3658 extern Int sizeofIRType(IRType  ) ;
3659 extern IRConst *IRConst_U1(Bool  ) ;   3659 extern IRConst *IRConst_U1(Bool  ) ;
3660 extern IRConst *IRConst_U8(UChar  ) ;   3660 extern IRConst *IRConst_U8(UChar  ) ;
3661 extern IRConst *IRConst_U16(UShort  ) ;   3661 extern IRConst *IRConst_U16(UShort  ) ;
3662 extern IRConst *IRConst_U32(UInt  ) ;   3662 extern IRConst *IRConst_U32(UInt  ) ;
3663 extern IRConst *IRConst_U64(ULong  ) ;   3663 extern IRConst *IRConst_U64(ULong  ) ;
3664 extern IRConst *IRConst_F32(Float  ) ;   3664 extern IRConst *IRConst_F32(Float  ) ;
3665 extern IRConst *IRConst_F32i(UInt  ) ;   3665 extern IRConst *IRConst_F32i(UInt  ) ;
3666 extern IRConst *IRConst_F64(Double  ) ;   3666 extern IRConst *IRConst_F64(Double  ) ;
3667 extern IRConst *IRConst_F64i(ULong  ) ;   3667 extern IRConst *IRConst_F64i(ULong  ) ;
3668 extern IRConst *IRConst_V128(UShort  ) ;   3668 extern IRConst *IRConst_V128(UShort  ) ;
3669 extern IRConst *deepCopyIRConst(IRConst * ) ;   3669 extern IRConst *deepCopyIRConst(IRConst * ) ;
3670 extern void ppIRConst(IRConst * ) ;   3670 extern void ppIRConst(IRConst * ) ;
3671 extern Bool eqIRConst(IRConst * , IRConst * ) ;   3671 extern Bool eqIRConst(IRConst * , IRConst * ) ;
3672 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;   3672 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;
3673 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;   3673 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;
3674 extern void ppIRCallee(IRCallee * ) ;   3674 extern void ppIRCallee(IRCallee * ) ;
3675 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;   3675 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;
3676 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;   3676 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;
3677 extern void ppIRRegArray(IRRegArray * ) ;   3677 extern void ppIRRegArray(IRRegArray * ) ;
3678 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;   3678 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;
3679 extern void ppIRTemp(IRTemp  ) ;   3679 extern void ppIRTemp(IRTemp  ) ;
3680 extern void ppIROp(IROp  ) ;   3680 extern void ppIROp(IROp  ) ;
3681 extern IRExpr *IRExpr_Binder(Int binder ) ;   3681 extern IRExpr *IRExpr_Binder(Int binder ) ;
3682 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;   3682 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;
3683 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;   3683 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;
3684 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;   3684 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;
3685 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,   3685 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,
3686                           IRExpr *arg4 ) ;   3686                           IRExpr *arg4 ) ;
3687 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,   3687 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,
3688                             IRExpr *arg3 ) ;   3688                             IRExpr *arg3 ) ;
3689 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;   3689 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;
3690 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;   3690 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;
3691 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;   3691 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;
3692 extern IRExpr *IRExpr_Const(IRConst *con ) ;   3692 extern IRExpr *IRExpr_Const(IRConst *con ) ;
3693 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;   3693 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;
3694 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;   3694 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;
3695 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;   3695 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;
3696 extern void ppIRExpr(IRExpr * ) ;   3696 extern void ppIRExpr(IRExpr * ) ;
3697 extern IRExpr **mkIRExprVec_0(void) ;   3697 extern IRExpr **mkIRExprVec_0(void) ;
3698 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;   3698 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;
3699 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;   3699 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;
3700 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;   3700 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;
3701 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3701 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3702 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3702 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3703                               IRExpr * ) ;   3703                               IRExpr * ) ;
3704 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3704 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3705                               IRExpr * , IRExpr * ) ;   3705                               IRExpr * , IRExpr * ) ;
3706 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3706 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3707                               IRExpr * , IRExpr * , IRExpr * ) ;   3707                               IRExpr * , IRExpr * , IRExpr * ) ;
3708 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3708 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3709                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3709                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3710 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;   3710 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;
3711 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;   3711 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;
3712 extern IRExpr *mkIRExpr_HWord(HWord  ) ;   3712 extern IRExpr *mkIRExpr_HWord(HWord  ) ;
3713 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,   3713 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,
3714                              void *addr , IRExpr **args ) ;   3714                              void *addr , IRExpr **args ) ;
3715 __inline static Bool isIRAtom(IRExpr *e )   3715 __inline static Bool isIRAtom(IRExpr *e )
3716 {   3716 {
3717   int tmp ;   3717   int tmp ;
3718   Bool tmp___0 ;   3718   Bool tmp___0 ;
3719     3719  
3720   {   3720   {
3721   if ((unsigned int )e->tag == 86019U) {   3721   if ((unsigned int )e->tag == 86019U) {
3722     tmp = 1;   3722     tmp = 1;
3723   } else   3723   } else
3724   if ((unsigned int )e->tag == 86025U) {   3724   if ((unsigned int )e->tag == 86025U) {
3725     tmp = 1;   3725     tmp = 1;
3726   } else {   3726   } else {
3727     tmp = 0;   3727     tmp = 0;
3728   }   3728   }
3729   tmp___0 = toBool(tmp);   3729   tmp___0 = toBool(tmp);
3730   return (tmp___0);   3730   return (tmp___0);
3731 }   3731 }
3732 }   3732 }
3733 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;   3733 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;
3734 extern void ppIRJumpKind(IRJumpKind  ) ;   3734 extern void ppIRJumpKind(IRJumpKind  ) ;
3735 extern void ppIREffect(IREffect  ) ;   3735 extern void ppIREffect(IREffect  ) ;
3736 extern void ppIRDirty(IRDirty * ) ;   3736 extern void ppIRDirty(IRDirty * ) ;
3737 extern IRDirty *emptyIRDirty(void) ;   3737 extern IRDirty *emptyIRDirty(void) ;
3738 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;   3738 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;
3739 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,   3739 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,
3740                                   IRExpr **args ) ;   3740                                   IRExpr **args ) ;
3741 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,   3741 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,
3742                                   void *addr , IRExpr **args ) ;   3742                                   void *addr , IRExpr **args ) ;
3743 extern void ppIRMBusEvent(IRMBusEvent  ) ;   3743 extern void ppIRMBusEvent(IRMBusEvent  ) ;
3744 extern void ppIRCAS(IRCAS *cas ) ;   3744 extern void ppIRCAS(IRCAS *cas ) ;
3745 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,   3745 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,
3746                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,   3746                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,
3747                       IRExpr *dataHi , IRExpr *dataLo ) ;   3747                       IRExpr *dataHi , IRExpr *dataLo ) ;
3748 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;   3748 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;
3749 extern IRStmt *IRStmt_NoOp(void) ;   3749 extern IRStmt *IRStmt_NoOp(void) ;
3750 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len ) ;   3750 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len ) ;
3751 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;   3751 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;
3752 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;   3752 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;
3753 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,   3753 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,
3754                            IRExpr *data ) ;   3754                            IRExpr *data ) ;
3755 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;   3755 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;
3756 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;   3756 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;
3757 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;   3757 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;
3758 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,   3758 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,
3759                            IRExpr *storedata ) ;   3759                            IRExpr *storedata ) ;
3760 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;   3760 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;
3761 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;   3761 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;
3762 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;   3762 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;
3763 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;   3763 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;
3764 extern void ppIRStmt(IRStmt * ) ;   3764 extern void ppIRStmt(IRStmt * ) ;
3765 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;   3765 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;
3766 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;   3766 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;
3767 extern void ppIRTypeEnv(IRTypeEnv * ) ;   3767 extern void ppIRTypeEnv(IRTypeEnv * ) ;
3768 extern IRSB *emptyIRSB(void) ;   3768 extern IRSB *emptyIRSB(void) ;
3769 extern IRSB *deepCopyIRSB(IRSB * ) ;   3769 extern IRSB *deepCopyIRSB(IRSB * ) ;
3770 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;   3770 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;
3771 extern void ppIRSB(IRSB * ) ;   3771 extern void ppIRSB(IRSB * ) ;
3772 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;   3772 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;
3773 extern IRTypeEnv *emptyIRTypeEnv(void) ;   3773 extern IRTypeEnv *emptyIRTypeEnv(void) ;
3774 extern IRType typeOfIRConst(IRConst * ) ;   3774 extern IRType typeOfIRConst(IRConst * ) ;
3775 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;   3775 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;
3776 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;   3776 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;
3777 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,   3777 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,
3778                             IRType guest_word_size ) ;   3778                             IRType guest_word_size ) ;
3779 extern Bool isFlatIRStmt(IRStmt * ) ;   3779 extern Bool isFlatIRStmt(IRStmt * ) ;
3780 extern Bool isPlausibleIRType(IRType ty ) ;   3780 extern Bool isPlausibleIRType(IRType ty ) ;
3781 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;   3781 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;
3782 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;   3782 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;
3783 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;   3783 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;
3784 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;   3784 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;
3785 extern void LibVEX_default_VexControl(VexControl *vcon ) ;   3785 extern void LibVEX_default_VexControl(VexControl *vcon ) ;
3786 extern HChar *private_LibVEX_alloc_first ;   3786 extern HChar *private_LibVEX_alloc_first ;
3787 extern HChar *private_LibVEX_alloc_curr ;   3787 extern HChar *private_LibVEX_alloc_curr ;
3788 extern HChar *private_LibVEX_alloc_last ;   3788 extern HChar *private_LibVEX_alloc_last ;
3789 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;   3789 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;
3790 __inline static void *LibVEX_Alloc(Int nbytes )   3790 __inline static void *LibVEX_Alloc(Int nbytes )
3791 {   3791 {
3792   HChar *curr ;   3792   HChar *curr ;
3793   HChar *next ;   3793   HChar *next ;
3794   Int ALIGN ;   3794   Int ALIGN ;
3795     3795  
3796   {   3796   {
3797   ALIGN = (Int )(sizeof(void *) - 1U);   3797   ALIGN = (Int )(sizeof(void *) - 1U);
3798   nbytes = (nbytes + ALIGN) & ~ ALIGN;   3798   nbytes = (nbytes + ALIGN) & ~ ALIGN;
3799   curr = private_LibVEX_alloc_curr;   3799   curr = private_LibVEX_alloc_curr;
3800   next = curr + nbytes;   3800   next = curr + nbytes;
3801   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {   3801   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {
3802     private_LibVEX_alloc_OOM();   3802     private_LibVEX_alloc_OOM();
3803   } else {   3803   } else {
3804     3804  
3805   }   3805   }
3806   private_LibVEX_alloc_curr = next;   3806   private_LibVEX_alloc_curr = next;
3807   return ((void *)curr);   3807   return ((void *)curr);
3808 }   3808 }
3809 }   3809 }
3810 extern void LibVEX_ShowAllocStats(void) ;   3810 extern void LibVEX_ShowAllocStats(void) ;
3811 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,   3811 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,
3812                         void (*log_bytes)(HChar * , Int nbytes ) ,   3812                         void (*log_bytes)(HChar * , Int nbytes ) ,
3813                         Int debuglevel , Bool valgrind_support ,   3813                         Int debuglevel , Bool valgrind_support ,
3814                         VexControl *vcon ) ;   3814                         VexControl *vcon ) ;
3815 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;   3815 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;
3816 extern void LibVEX_ShowStats(void) ;   3816 extern void LibVEX_ShowStats(void) ;
3817 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;   3817 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;
3818 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;   3818 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;
3819 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;   3819 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;
3820 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,   3820 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,
3821                                         VexGuestX86State *vex_state ) ;   3821                                         VexGuestX86State *vex_state ) ;
3822 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,   3822 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,
3823                                                       __vki_kernel_size_t __size ,   3823                                                       __vki_kernel_size_t __size ,
3824                                                       struct vki_cmsghdr *__cmsg )   3824                                                       struct vki_cmsghdr *__cmsg )
3825 {   3825 {
3826   struct vki_cmsghdr *__ptr ;   3826   struct vki_cmsghdr *__ptr ;
3827     3827  
3828   {   3828   {
3829   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));   3829   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));
3830   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {   3830   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {
3831     return ((struct vki_cmsghdr *)0);   3831     return ((struct vki_cmsghdr *)0);
3832   } else {   3832   } else {
3833     3833  
3834   }   3834   }
3835   return (__ptr);   3835   return (__ptr);
3836 }   3836 }
3837 }   3837 }
3838 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,   3838 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,
3839                                                     struct vki_cmsghdr *__cmsg )   3839                                                     struct vki_cmsghdr *__cmsg )
3840 {   3840 {
3841   struct vki_cmsghdr *tmp ;   3841   struct vki_cmsghdr *tmp ;
3842     3842  
3843   {   3843   {
3844   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);   3844   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
3845   return (tmp);   3845   return (tmp);
3846 }   3846 }
3847 }   3847 }
3848 extern void vgPlain_vki_do_initial_consistency_checks(void) ;   3848 extern void vgPlain_vki_do_initial_consistency_checks(void) ;
3849 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;   3849 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;
3850 extern Int vgPlain_debugLog_getLevel(void) ;   3850 extern Int vgPlain_debugLog_getLevel(void) ;
3851 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,   3851 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,
3852                                                         HChar const   *modulename ,   3852                                                         HChar const   *modulename ,
3853                                                         HChar const   *format   3853                                                         HChar const   *format
3854                                                         , ...) ;   3854                                                         , ...) ;
3855 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,   3855 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,
3856                                      void *send_arg2 , HChar const   *format ,   3856                                      void *send_arg2 , HChar const   *format ,
3857                                      va_list vargs ) ;   3857                                      va_list vargs ) ;
3858 extern Char **vgPlain_client_envp ;   3858 extern Char **vgPlain_client_envp ;
3859 extern Char *vgPlain_getenv(Char *name ) ;   3859 extern Char *vgPlain_getenv(Char *name ) ;
3860 extern Char const   *vgPlain_libdir ;   3860 extern Char const   *vgPlain_libdir ;
3861 extern Char const   *vgPlain_LD_PRELOAD_var_name ;   3861 extern Char const   *vgPlain_LD_PRELOAD_var_name ;
3862 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;   3862 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;
3863 extern Int vgPlain_system(Char *cmd ) ;   3863 extern Int vgPlain_system(Char *cmd ) ;
3864 extern Int vgPlain_fork(void) ;   3864 extern Int vgPlain_fork(void) ;
3865 extern void vgPlain_execv(Char *filename , Char **argv ) ;   3865 extern void vgPlain_execv(Char *filename , Char **argv ) ;
3866 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;   3866 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;
3867 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;   3867 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;
3868 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,   3868 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,
3869                          ULong arg5 ) ;   3869                          ULong arg5 ) ;
3870 extern Int vgPlain_gettid(void) ;   3870 extern Int vgPlain_gettid(void) ;
3871 extern Int vgPlain_getpid(void) ;   3871 extern Int vgPlain_getpid(void) ;
3872 extern Int vgPlain_getppid(void) ;   3872 extern Int vgPlain_getppid(void) ;
3873 extern Int vgPlain_getpgrp(void) ;   3873 extern Int vgPlain_getpgrp(void) ;
3874 extern Int vgPlain_geteuid(void) ;   3874 extern Int vgPlain_geteuid(void) ;
3875 extern Int vgPlain_getegid(void) ;   3875 extern Int vgPlain_getegid(void) ;
3876 extern UInt vgPlain_read_millisecond_timer(void) ;   3876 extern UInt vgPlain_read_millisecond_timer(void) ;
3877 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,   3877 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,
3878                            void (*parent)(ThreadId  ) ,   3878                            void (*parent)(ThreadId  ) ,
3879                            void (*child)(ThreadId  ) ) ;   3879                            void (*child)(ThreadId  ) ) ;
3880 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,   3880 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,
3881                                  Char const   *val ) ;   3881                                  Char const   *val ) ;
3882 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;   3882 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;
3883 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;   3883 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;
3884 extern Char **vgPlain_env_clone(Char **env_clone ) ;   3884 extern Char **vgPlain_env_clone(Char **env_clone ) ;
3885 extern Int vgPlain_getgroups(Int size , UInt *list ) ;   3885 extern Int vgPlain_getgroups(Int size , UInt *list ) ;
3886 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;   3886 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;
3887 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;   3887 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;
3888 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;   3888 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;
3889 extern void vgPlain_do_atfork_child(ThreadId tid ) ;   3889 extern void vgPlain_do_atfork_child(ThreadId tid ) ;
3890 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,   3890 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,
3891                                                        HChar const   *format   3891                                                        HChar const   *format
3892                                                        , ...) ;   3892                                                        , ...) ;
3893 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,   3893 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,
3894                                                         HChar const   *format ,   3894                                                         HChar const   *format ,
3895                                                         va_list vargs ) ;   3895                                                         va_list vargs ) ;
3896 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,   3896 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,
3897                                                         HChar const   *format   3897                                                         HChar const   *format
3898                                                         , ...) ;   3898                                                         , ...) ;
3899 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,   3899 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,
3900                                                          HChar const   *format ,   3900                                                          HChar const   *format ,
3901                                                          va_list vargs ) ;   3901                                                          va_list vargs ) ;
3902 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,   3902 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,
3903                                char *buf ) ;   3903                                char *buf ) ;
3904 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format   3904 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format
3905                                                       , ...) ;   3905                                                       , ...) ;
3906 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,   3906 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,
3907                                                        va_list vargs ) ;   3907                                                        va_list vargs ) ;
3908 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format   3908 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format
3909                                                           , ...) ;   3909                                                           , ...) ;
3910 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,   3910 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,
3911                                                            va_list vargs ) ;   3911                                                            va_list vargs ) ;
3912 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;   3912 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;
3913 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,   3913 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,
3914                               void *opaque , HChar const   *format ,   3914                               void *opaque , HChar const   *format ,
3915                               va_list vargs ) ;   3915                               va_list vargs ) ;
3916 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;   3916 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;
3917 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,   3917 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,
3918                                                        HChar const   *format   3918                                                        HChar const   *format
3919                                                        , ...) ;   3919                                                        , ...) ;
3920 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,   3920 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,
3921                                                         HChar const   *format ,   3921                                                         HChar const   *format ,
3922                                                         va_list vargs ) ;   3922                                                         va_list vargs ) ;
3923 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;   3923 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;
3924 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,   3924 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,
3925                                                                                               HChar const   *format   3925                                                                                               HChar const   *format
3926                                                                                               , ...) ;   3926                                                                                               , ...) ;
3927 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;   3927 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;
3928 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;   3928 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;
3929 extern void vgPlain_message_flush(void) ;   3929 extern void vgPlain_message_flush(void) ;
3930 extern OutputSink vgPlain_log_output_sink ;   3930 extern OutputSink vgPlain_log_output_sink ;
3931 extern OutputSink vgPlain_xml_output_sink ;   3931 extern OutputSink vgPlain_xml_output_sink ;
3932 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;   3932 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;
3933 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;   3933 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;
3934 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;   3934 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;
3935 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;   3935 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;
3936 extern void vgPlain_free(void *p ) ;   3936 extern void vgPlain_free(void *p ) ;
3937 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;   3937 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;
3938 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;   3938 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;
3939 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;   3939 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;
3940 extern SizeT vgPlain_malloc_usable_size(void *p ) ;   3940 extern SizeT vgPlain_malloc_usable_size(void *p ) ;
3941 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,   3941 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,
3942                                                                           SizeT szB ) ;   3942                                                                           SizeT szB ) ;
3943 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;   3943 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;
3944 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;   3944 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;
3945 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,   3945 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,
3946                                   SizeT bytes_per_memb ) ;   3946                                   SizeT bytes_per_memb ) ;
3947 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,   3947 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,
3948                                    SizeT size ) ;   3948                                    SizeT size ) ;
3949 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,   3949 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,
3950                                     SizeT req_pszB ) ;   3950                                     SizeT req_pszB ) ;
3951 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;   3951 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;
3952 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;   3952 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;
3953 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;   3953 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;
3954 extern void vgPlain_sanity_check_malloc_all(void) ;   3954 extern void vgPlain_sanity_check_malloc_all(void) ;
3955 extern void vgPlain_print_all_arena_stats(void) ;   3955 extern void vgPlain_print_all_arena_stats(void) ;
3956 extern void vgPlain_print_arena_cc_analysis(void) ;   3956 extern void vgPlain_print_arena_cc_analysis(void) ;
3957 void vgPlain_gdbserver(ThreadId tid ) ;   3957 void vgPlain_gdbserver(ThreadId tid ) ;
3958 Int vgPlain_dyn_vgdb_error  ;   3958 Int vgPlain_dyn_vgdb_error  ;
3959 char *vgPlain_ppPointKind(PointKind kind ) ;   3959 char *vgPlain_ppPointKind(PointKind kind ) ;
3960 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;   3960 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;
3961 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,   3961 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,
3962                                                  Addr addr , SizeT len ) ) ;   3962                                                  Addr addr , SizeT len ) ) ;
3963 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...) ;   3963 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...) ;
3964 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   3964 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
3965                        kwd_report_error report ) ;   3965                        kwd_report_error report ) ;
3966 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   3966 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
3967                                          Char **ssaveptr ) ;   3967                                          Char **ssaveptr ) ;
3968 void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;   3968 void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;
3969 Bool vgPlain_gdbserver_activity(ThreadId tid ) ;   3969 Bool vgPlain_gdbserver_activity(ThreadId tid ) ;
3970 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len ) ;   3970 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len ) ;
3971 void vgPlain_invoke_gdbserver(int check ) ;   3971 void vgPlain_invoke_gdbserver(int check ) ;
3972 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid ) ;   3972 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid ) ;
3973 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,   3973 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,
3974                                                  VexGuestLayout *layout ,   3974                                                  VexGuestLayout *layout ,
3975                                                  VexGuestExtents *vge ,   3975                                                  VexGuestExtents *vge ,
3976                                                  IRType gWordTy ,   3976                                                  IRType gWordTy ,
3977                                                  IRType hWordTy ) ;   3977                                                  IRType hWordTy ) ;
3978 void vgPlain_gdbserver_status_output(void) ;   3978 void vgPlain_gdbserver_status_output(void) ;
3979 extern Int vgPlain_clo_verbosity ;   3979 extern Int vgPlain_clo_verbosity ;
3980 extern Bool vgPlain_clo_stats ;   3980 extern Bool vgPlain_clo_stats ;
3981 extern Int vgPlain_clo_vgdb_error ;   3981 extern Int vgPlain_clo_vgdb_error ;
3982 extern Bool vgPlain_clo_xml ;   3982 extern Bool vgPlain_clo_xml ;
3983 extern HChar *vgPlain_clo_xml_user_comment ;   3983 extern HChar *vgPlain_clo_xml_user_comment ;
3984 extern VexControl vgPlain_clo_vex_control ;   3984 extern VexControl vgPlain_clo_vex_control ;
3985 extern Int vgPlain_clo_backtrace_size ;   3985 extern Int vgPlain_clo_backtrace_size ;
3986 extern Bool vgPlain_clo_show_below_main ;   3986 extern Bool vgPlain_clo_show_below_main ;
3987 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;   3987 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;
3988 extern Bool vgPlain_clo_error_limit ;   3988 extern Bool vgPlain_clo_error_limit ;
3989 extern Int vgPlain_clo_error_exitcode ;   3989 extern Int vgPlain_clo_error_exitcode ;
3990 extern VgVgdb vgPlain_clo_vgdb ;   3990 extern VgVgdb vgPlain_clo_vgdb ;
3991 extern Int vgPlain_clo_vgdb_poll ;   3991 extern Int vgPlain_clo_vgdb_poll ;
3992 extern Char *vgPlain_clo_vgdb_prefix ;   3992 extern Char *vgPlain_clo_vgdb_prefix ;
3993 extern Bool vgPlain_clo_vgdb_shadow_registers ;   3993 extern Bool vgPlain_clo_vgdb_shadow_registers ;
3994 extern Bool vgPlain_clo_db_attach ;   3994 extern Bool vgPlain_clo_db_attach ;
3995 extern Char *vgPlain_clo_db_command ;   3995 extern Char *vgPlain_clo_db_command ;
3996 extern Int vgPlain_clo_gen_suppressions ;   3996 extern Int vgPlain_clo_gen_suppressions ;
3997 extern Int vgPlain_clo_sanity_level ;   3997 extern Int vgPlain_clo_sanity_level ;
3998 extern Bool vgPlain_clo_demangle ;   3998 extern Bool vgPlain_clo_demangle ;
3999 extern Bool vgPlain_clo_trace_children ;   3999 extern Bool vgPlain_clo_trace_children ;
4000 extern HChar *vgPlain_clo_trace_children_skip ;   4000 extern HChar *vgPlain_clo_trace_children_skip ;
4001 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;   4001 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;
4002 extern Bool vgPlain_clo_child_silent_after_fork ;   4002 extern Bool vgPlain_clo_child_silent_after_fork ;
4003 extern Char *vgPlain_clo_log_fname_expanded ;   4003 extern Char *vgPlain_clo_log_fname_expanded ;
4004 extern Char *vgPlain_clo_xml_fname_expanded ;   4004 extern Char *vgPlain_clo_xml_fname_expanded ;
4005 extern Bool vgPlain_clo_time_stamp ;   4005 extern Bool vgPlain_clo_time_stamp ;
4006 extern Int vgPlain_clo_input_fd ;   4006 extern Int vgPlain_clo_input_fd ;
4007 extern Int vgPlain_clo_n_suppressions ;   4007 extern Int vgPlain_clo_n_suppressions ;
4008 extern Char *vgPlain_clo_suppressions[100] ;   4008 extern Char *vgPlain_clo_suppressions[100] ;
4009 extern Int vgPlain_clo_n_fullpath_after ;   4009 extern Int vgPlain_clo_n_fullpath_after ;
4010 extern Char *vgPlain_clo_fullpath_after[100] ;   4010 extern Char *vgPlain_clo_fullpath_after[100] ;
4011 extern UChar vgPlain_clo_trace_flags ;   4011 extern UChar vgPlain_clo_trace_flags ;
4012 extern UChar vgPlain_clo_profile_flags ;   4012 extern UChar vgPlain_clo_profile_flags ;
4013 extern Int vgPlain_clo_trace_notbelow ;   4013 extern Int vgPlain_clo_trace_notbelow ;
4014 extern Bool vgPlain_clo_trace_syscalls ;   4014 extern Bool vgPlain_clo_trace_syscalls ;
4015 extern Bool vgPlain_clo_trace_signals ;   4015 extern Bool vgPlain_clo_trace_signals ;
4016 extern Bool vgPlain_clo_trace_symtab ;   4016 extern Bool vgPlain_clo_trace_symtab ;
4017 extern HChar *vgPlain_clo_trace_symtab_patt ;   4017 extern HChar *vgPlain_clo_trace_symtab_patt ;
4018 extern Bool vgPlain_clo_trace_cfi ;   4018 extern Bool vgPlain_clo_trace_cfi ;
4019 extern Bool vgPlain_clo_debug_dump_syms ;   4019 extern Bool vgPlain_clo_debug_dump_syms ;
4020 extern Bool vgPlain_clo_debug_dump_line ;   4020 extern Bool vgPlain_clo_debug_dump_line ;
4021 extern Bool vgPlain_clo_debug_dump_frames ;   4021 extern Bool vgPlain_clo_debug_dump_frames ;
4022 extern Bool vgPlain_clo_trace_redir ;   4022 extern Bool vgPlain_clo_trace_redir ;
4023 extern Bool vgPlain_clo_trace_sched ;   4023 extern Bool vgPlain_clo_trace_sched ;
4024 extern Bool vgPlain_clo_profile_heap ;   4024 extern Bool vgPlain_clo_profile_heap ;
4025 extern Int vgPlain_clo_dump_error ;   4025 extern Int vgPlain_clo_dump_error ;
4026 extern Char *vgPlain_clo_sim_hints ;   4026 extern Char *vgPlain_clo_sim_hints ;
4027 extern Bool vgPlain_clo_sym_offsets ;   4027 extern Bool vgPlain_clo_sym_offsets ;
4028 extern Bool vgPlain_clo_read_var_info ;   4028 extern Bool vgPlain_clo_read_var_info ;
4029 extern Char *vgPlain_clo_prefix_to_strip ;   4029 extern Char *vgPlain_clo_prefix_to_strip ;
4030 extern Int vgPlain_clo_n_req_tsyms ;   4030 extern Int vgPlain_clo_n_req_tsyms ;
4031 extern HChar *vgPlain_clo_req_tsyms[100] ;   4031 extern HChar *vgPlain_clo_req_tsyms[100] ;
4032 extern Bool vgPlain_clo_track_fds ;   4032 extern Bool vgPlain_clo_track_fds ;
4033 extern Bool vgPlain_clo_run_libc_freeres ;   4033 extern Bool vgPlain_clo_run_libc_freeres ;
4034 extern Bool vgPlain_clo_show_emwarns ;   4034 extern Bool vgPlain_clo_show_emwarns ;
4035 extern Word vgPlain_clo_max_stackframe ;   4035 extern Word vgPlain_clo_max_stackframe ;
4036 extern Word vgPlain_clo_main_stacksize ;   4036 extern Word vgPlain_clo_main_stacksize ;
4037 extern Bool vgPlain_clo_wait_for_gdb ;   4037 extern Bool vgPlain_clo_wait_for_gdb ;
4038 extern VgSmc vgPlain_clo_smc_check ;   4038 extern VgSmc vgPlain_clo_smc_check ;
4039 extern HChar *vgPlain_clo_kernel_variant ;   4039 extern HChar *vgPlain_clo_kernel_variant ;
4040 extern Bool vgPlain_clo_dsymutil ;   4040 extern Bool vgPlain_clo_dsymutil ;
4041 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,   4041 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,
4042                                                HChar **child_argv ) ;   4042                                                HChar **child_argv ) ;
4043 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;   4043 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;
4044 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,   4044 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,
4045                                                      int __savemask ) ;   4045                                                      int __savemask ) ;
4046 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;   4046 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;
4047 extern  __attribute__((__nothrow__,   4047 extern  __attribute__((__nothrow__,
4048 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;   4048 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;
4049 extern  __attribute__((__nothrow__,   4049 extern  __attribute__((__nothrow__,
4050 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;   4050 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;
4051 extern  __attribute__((__nothrow__,   4051 extern  __attribute__((__nothrow__,
4052 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;   4052 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;
4053 extern ThreadId vgPlain_get_running_tid(void) ;   4053 extern ThreadId vgPlain_get_running_tid(void) ;
4054 extern ThreadState vgPlain_threads[500] ;   4054 extern ThreadState vgPlain_threads[500] ;
4055 extern ThreadId vgPlain_running_tid ;   4055 extern ThreadId vgPlain_running_tid ;
4056 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;   4056 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;
4057 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;   4057 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;
4058 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;   4058 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;
4059 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;   4059 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;
4060 extern Bool vgPlain_is_exiting(ThreadId tid ) ;   4060 extern Bool vgPlain_is_exiting(ThreadId tid ) ;
4061 extern Int vgPlain_count_living_threads(void) ;   4061 extern Int vgPlain_count_living_threads(void) ;
4062 extern Int vgPlain_count_runnable_threads(void) ;   4062 extern Int vgPlain_count_runnable_threads(void) ;
4063 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;   4063 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;
4064 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;   4064 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;
4065 extern UInt *vgPlain_tt_fastN[1 << 15] ;   4065 extern UInt *vgPlain_tt_fastN[1 << 15] ;
4066 extern void vgPlain_init_tt_tc(void) ;   4066 extern void vgPlain_init_tt_tc(void) ;
4067 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,   4067 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,
4068                                     AddrH code , UInt code_len ,   4068                                     AddrH code , UInt code_len ,
4069                                     Bool is_self_checking ) ;   4069                                     Bool is_self_checking ) ;
4070 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,   4070 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,
4071                                     Bool upd_cache ) ;   4071                                     Bool upd_cache ) ;
4072 extern void vgPlain_discard_translations(Addr64 start , ULong range ,   4072 extern void vgPlain_discard_translations(Addr64 start , ULong range ,
4073                                          HChar *who ) ;   4073                                          HChar *who ) ;
4074 extern void vgPlain_print_tt_tc_stats(void) ;   4074 extern void vgPlain_print_tt_tc_stats(void) ;
4075 extern UInt vgPlain_get_bbs_translated(void) ;   4075 extern UInt vgPlain_get_bbs_translated(void) ;
4076 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,   4076 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,
4077                                             Addr64 entry , AddrH code ,   4077                                             Addr64 entry , AddrH code ,
4078                                             UInt code_len ) ;   4078                                             UInt code_len ) ;
4079 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;   4079 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;
4080 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;   4080 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;
4081 extern VgHashTable vgPlain_HT_construct(HChar *name ) ;   4081 extern VgHashTable vgPlain_HT_construct(HChar *name ) ;
4082 extern Int vgPlain_HT_count_nodes(VgHashTable table ) ;   4082 extern Int vgPlain_HT_count_nodes(VgHashTable table ) ;
4083 extern void vgPlain_HT_add_node(VgHashTable t , void *node ) ;   4083 extern void vgPlain_HT_add_node(VgHashTable t , void *node ) ;
4084 extern void *vgPlain_HT_lookup(VgHashTable table , UWord key ) ;   4084 extern void *vgPlain_HT_lookup(VgHashTable table , UWord key ) ;
4085 extern void *vgPlain_HT_remove(VgHashTable table , UWord key ) ;   4085 extern void *vgPlain_HT_remove(VgHashTable table , UWord key ) ;
4086 extern VgHashNode **vgPlain_HT_to_array(VgHashTable t , UInt *n_elems ) ;   4086 extern VgHashNode **vgPlain_HT_to_array(VgHashTable t , UInt *n_elems ) ;
4087 extern void vgPlain_HT_ResetIter(VgHashTable table ) ;   4087 extern void vgPlain_HT_ResetIter(VgHashTable table ) ;
4088 extern void *vgPlain_HT_Next(VgHashTable table ) ;   4088 extern void *vgPlain_HT_Next(VgHashTable table ) ;
4089 extern void vgPlain_HT_destruct(VgHashTable t ) ;   4089 extern void vgPlain_HT_destruct(VgHashTable t ) ;
4090 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;   4090 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;
4091 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;   4091 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;
4092 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,   4092 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,
4093                                                                Char const   *expr ,   4093                                                                Char const   *expr ,
4094                                                                Char const   *file ,   4094                                                                Char const   *file ,
4095                                                                Int line ,   4095                                                                Int line ,
4096                                                                Char const   *fn ,   4096                                                                Char const   *fn ,
4097                                                                HChar const   *format   4097                                                                HChar const   *format
4098                                                                , ...) ;   4098                                                                , ...) ;
4099 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;   4099 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;
4100 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,   4100 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,
4101                                                                  UnwindStartRegs * ) ;   4101                                                                  UnwindStartRegs * ) ;
4102 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;   4102 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;
4103 extern void vgPlain_show_sched_status(void) ;   4103 extern void vgPlain_show_sched_status(void) ;
4104 extern Bool vgPlain_isspace(Char c ) ;   4104 extern Bool vgPlain_isspace(Char c ) ;
4105 extern Bool vgPlain_isdigit(Char c ) ;   4105 extern Bool vgPlain_isdigit(Char c ) ;
4106 extern Char vgPlain_tolower(Char c ) ;   4106 extern Char vgPlain_tolower(Char c ) ;
4107 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;   4107 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;
4108 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;   4108 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;
4109 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;   4109 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;
4110 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;   4110 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;
4111 extern double vgPlain_strtod(Char *str , Char **endptr ) ;   4111 extern double vgPlain_strtod(Char *str , Char **endptr ) ;
4112 extern SizeT vgPlain_strlen(Char const   *str ) ;   4112 extern SizeT vgPlain_strlen(Char const   *str ) ;
4113 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;   4113 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;
4114 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;   4114 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;
4115 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;   4115 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;
4116 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;   4116 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;
4117 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;   4117 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;
4118 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;   4118 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;
4119 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;   4119 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;
4120 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4120 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4121 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4121 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4122 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;   4122 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;
4123 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;   4123 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;
4124 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;   4124 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;
4125 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;   4125 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;
4126 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;   4126 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;
4127 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;   4127 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;
4128 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;   4128 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;
4129 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;   4129 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;
4130 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;   4130 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;
4131 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;   4131 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;
4132 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;   4132 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;
4133 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;   4133 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;
4134 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;   4134 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;
4135 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;   4135 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;
4136 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,   4136 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,
4137                                                                                 SizeT sz )   4137                                                                                 SizeT sz )
4138 {   4138 {
4139   UWord *p ;   4139   UWord *p ;
4140   UWord tmp ;   4140   UWord tmp ;
4141   UWord tmp___0 ;   4141   UWord tmp___0 ;
4142   UWord tmp___1 ;   4142   UWord tmp___1 ;
4143   UWord tmp___2 ;   4143   UWord tmp___2 ;
4144   UWord tmp___3 ;   4144   UWord tmp___3 ;
4145   UWord tmp___4 ;   4145   UWord tmp___4 ;
4146   UWord tmp___5 ;   4146   UWord tmp___5 ;
4147   UWord tmp___6 ;   4147   UWord tmp___6 ;
4148   UWord tmp___7 ;   4148   UWord tmp___7 ;
4149   UWord tmp___8 ;   4149   UWord tmp___8 ;
4150   UWord tmp___9 ;   4150   UWord tmp___9 ;
4151   UWord tmp___10 ;   4151   UWord tmp___10 ;
4152   UWord tmp___11 ;   4152   UWord tmp___11 ;
4153   UWord tmp___12 ;   4153   UWord tmp___12 ;
4154   UWord tmp___13 ;   4154   UWord tmp___13 ;
4155   UWord tmp___14 ;   4155   UWord tmp___14 ;
4156   UWord tmp___15 ;   4156   UWord tmp___15 ;
4157   UWord tmp___16 ;   4157   UWord tmp___16 ;
4158   UWord tmp___17 ;   4158   UWord tmp___17 ;
4159   UWord tmp___18 ;   4159   UWord tmp___18 ;
4160   UWord tmp___19 ;   4160   UWord tmp___19 ;
4161   UWord tmp___20 ;   4161   UWord tmp___20 ;
4162   UWord tmp___21 ;   4162   UWord tmp___21 ;
4163   UWord tmp___22 ;   4163   UWord tmp___22 ;
4164   UWord tmp___23 ;   4164   UWord tmp___23 ;
4165   UWord tmp___24 ;   4165   UWord tmp___24 ;
4166   UWord tmp___25 ;   4166   UWord tmp___25 ;
4167   UWord tmp___26 ;   4167   UWord tmp___26 ;
4168   long tmp___27 ;   4168   long tmp___27 ;
4169   long tmp___28 ;   4169   long tmp___28 ;
4170     4170  
4171   {   4171   {
4172   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),   4172   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),
4173                               1L);   4173                               1L);
4174   if (tmp___27) {   4174   if (tmp___27) {
4175     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),   4175     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),
4176                                 1L);   4176                                 1L);
4177     if (tmp___28) {   4177     if (tmp___28) {
4178       p = (UWord *)s;   4178       p = (UWord *)s;
4179       switch (sz / (SizeT )sizeof(UWord )) {   4179       switch (sz / (SizeT )sizeof(UWord )) {
4180       case 8UL:   4180       case 8UL:
4181       tmp___5 = 0UL;   4181       tmp___5 = 0UL;
4182       *(p + 7) = tmp___5;   4182       *(p + 7) = tmp___5;
4183       tmp___4 = tmp___5;   4183       tmp___4 = tmp___5;
4184       *(p + 6) = tmp___4;   4184       *(p + 6) = tmp___4;
4185       tmp___3 = tmp___4;   4185       tmp___3 = tmp___4;
4186       *(p + 5) = tmp___3;   4186       *(p + 5) = tmp___3;
4187       tmp___2 = tmp___3;   4187       tmp___2 = tmp___3;
4188       *(p + 4) = tmp___2;   4188       *(p + 4) = tmp___2;
4189       tmp___1 = tmp___2;   4189       tmp___1 = tmp___2;
4190       *(p + 3) = tmp___1;   4190       *(p + 3) = tmp___1;
4191       tmp___0 = tmp___1;   4191       tmp___0 = tmp___1;
4192       *(p + 2) = tmp___0;   4192       *(p + 2) = tmp___0;
4193       tmp = tmp___0;   4193       tmp = tmp___0;
4194       *(p + 1) = tmp;   4194       *(p + 1) = tmp;
4195       *(p + 0) = tmp;   4195       *(p + 0) = tmp;
4196       return;   4196       return;
4197       case 7UL:   4197       case 7UL:
4198       tmp___11 = 0UL;   4198       tmp___11 = 0UL;
4199       *(p + 6) = tmp___11;   4199       *(p + 6) = tmp___11;
4200       tmp___10 = tmp___11;   4200       tmp___10 = tmp___11;
4201       *(p + 5) = tmp___10;   4201       *(p + 5) = tmp___10;
4202       tmp___9 = tmp___10;   4202       tmp___9 = tmp___10;
4203       *(p + 4) = tmp___9;   4203       *(p + 4) = tmp___9;
4204       tmp___8 = tmp___9;   4204       tmp___8 = tmp___9;
4205       *(p + 3) = tmp___8;   4205       *(p + 3) = tmp___8;
4206       tmp___7 = tmp___8;   4206       tmp___7 = tmp___8;
4207       *(p + 2) = tmp___7;   4207       *(p + 2) = tmp___7;
4208       tmp___6 = tmp___7;   4208       tmp___6 = tmp___7;
4209       *(p + 1) = tmp___6;   4209       *(p + 1) = tmp___6;
4210       *(p + 0) = tmp___6;   4210       *(p + 0) = tmp___6;
4211       return;   4211       return;
4212       case 6UL:   4212       case 6UL:
4213       tmp___16 = 0UL;   4213       tmp___16 = 0UL;
4214       *(p + 5) = tmp___16;   4214       *(p + 5) = tmp___16;
4215       tmp___15 = tmp___16;   4215       tmp___15 = tmp___16;
4216       *(p + 4) = tmp___15;   4216       *(p + 4) = tmp___15;
4217       tmp___14 = tmp___15;   4217       tmp___14 = tmp___15;
4218       *(p + 3) = tmp___14;   4218       *(p + 3) = tmp___14;
4219       tmp___13 = tmp___14;   4219       tmp___13 = tmp___14;
4220       *(p + 2) = tmp___13;   4220       *(p + 2) = tmp___13;
4221       tmp___12 = tmp___13;   4221       tmp___12 = tmp___13;
4222       *(p + 1) = tmp___12;   4222       *(p + 1) = tmp___12;
4223       *(p + 0) = tmp___12;   4223       *(p + 0) = tmp___12;
4224       return;   4224       return;
4225       case 5UL:   4225       case 5UL:
4226       tmp___20 = 0UL;   4226       tmp___20 = 0UL;
4227       *(p + 4) = tmp___20;   4227       *(p + 4) = tmp___20;
4228       tmp___19 = tmp___20;   4228       tmp___19 = tmp___20;
4229       *(p + 3) = tmp___19;   4229       *(p + 3) = tmp___19;
4230       tmp___18 = tmp___19;   4230       tmp___18 = tmp___19;
4231       *(p + 2) = tmp___18;   4231       *(p + 2) = tmp___18;
4232       tmp___17 = tmp___18;   4232       tmp___17 = tmp___18;
4233       *(p + 1) = tmp___17;   4233       *(p + 1) = tmp___17;
4234       *(p + 0) = tmp___17;   4234       *(p + 0) = tmp___17;
4235       return;   4235       return;
4236       case 4UL:   4236       case 4UL:
4237       tmp___23 = 0UL;   4237       tmp___23 = 0UL;
4238       *(p + 3) = tmp___23;   4238       *(p + 3) = tmp___23;
4239       tmp___22 = tmp___23;   4239       tmp___22 = tmp___23;
4240       *(p + 2) = tmp___22;   4240       *(p + 2) = tmp___22;
4241       tmp___21 = tmp___22;   4241       tmp___21 = tmp___22;
4242       *(p + 1) = tmp___21;   4242       *(p + 1) = tmp___21;
4243       *(p + 0) = tmp___21;   4243       *(p + 0) = tmp___21;
4244       return;   4244       return;
4245       case 3UL:   4245       case 3UL:
4246       tmp___25 = 0UL;   4246       tmp___25 = 0UL;
4247       *(p + 2) = tmp___25;   4247       *(p + 2) = tmp___25;
4248       tmp___24 = tmp___25;   4248       tmp___24 = tmp___25;
4249       *(p + 1) = tmp___24;   4249       *(p + 1) = tmp___24;
4250       *(p + 0) = tmp___24;   4250       *(p + 0) = tmp___24;
4251       return;   4251       return;
4252       case 2UL:   4252       case 2UL:
4253       tmp___26 = 0UL;   4253       tmp___26 = 0UL;
4254       *(p + 1) = tmp___26;   4254       *(p + 1) = tmp___26;
4255       *(p + 0) = tmp___26;   4255       *(p + 0) = tmp___26;
4256       return;   4256       return;
4257       case 1UL:   4257       case 1UL:
4258       *(p + 0) = 0UL;   4258       *(p + 0) = 0UL;
4259       return;   4259       return;
4260       case 0UL:   4260       case 0UL:
4261       return;   4261       return;
4262       default:   4262       default:
4263       break;   4263       break;
4264       }   4264       }
4265     } else {   4265     } else {
4266     4266  
4267     }   4267     }
4268   } else {   4268   } else {
4269     4269  
4270   }   4270   }
4271   vgPlain_memset(s, 0, sz);   4271   vgPlain_memset(s, 0, sz);
4272   return;   4272   return;
4273 }   4273 }
4274 }   4274 }
4275 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,   4275 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,
4276                           Int (*compar)(void * , void * ) ) ;   4276                           Int (*compar)(void * , void * ) ) ;
4277 extern Int vgPlain_log2(UInt x ) ;   4277 extern Int vgPlain_log2(UInt x ) ;
4278 extern UInt vgPlain_random(UInt *pSeed ) ;   4278 extern UInt vgPlain_random(UInt *pSeed ) ;
4279 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,   4279 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,
4280                                vki_sigset_t *oldset ) ;   4280                                vki_sigset_t *oldset ) ;
4281 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;   4281 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;
4282 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;   4282 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;
4283 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;   4283 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;
4284 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;   4284 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;
4285 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,   4285 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,
4286                                vki_sigset_t const   *set2 ) ;   4286                                vki_sigset_t const   *set2 ) ;
4287 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;   4287 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;
4288 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;   4288 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;
4289 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;   4289 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;
4290 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4290 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4291 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4291 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4292 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4292 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4293 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4293 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4294 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,   4294 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,
4295                              vki_sigaction_fromK_t *oldact ) ;   4295                              vki_sigaction_fromK_t *oldact ) ;
4296 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,   4296 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,
4297                                                    vki_sigaction_toK_t * ) ;   4297                                                    vki_sigaction_toK_t * ) ;
4298 extern Int vgPlain_kill(Int pid , Int signo ) ;   4298 extern Int vgPlain_kill(Int pid , Int signo ) ;
4299 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;   4299 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;
4300 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;   4300 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;
4301 extern Addr vgPlain_get_IP(ThreadId tid ) ;   4301 extern Addr vgPlain_get_IP(ThreadId tid ) ;
4302 extern Addr vgPlain_get_SP(ThreadId tid ) ;   4302 extern Addr vgPlain_get_SP(ThreadId tid ) ;
4303 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,   4303 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,
4304                                          Int shadowNo , PtrdiffT offset ,   4304                                          Int shadowNo , PtrdiffT offset ,
4305                                          SizeT size ) ;   4305                                          SizeT size ) ;
4306 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,   4306 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,
4307                                          PtrdiffT offset , SizeT size ,   4307                                          PtrdiffT offset , SizeT size ,
4308                                          UChar const   *src ) ;   4308                                          UChar const   *src ) ;
4309 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,   4309 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,
4310                                                UWord s2res , UWord s1err ,   4310                                                UWord s2res , UWord s1err ,
4311                                                UWord s2err ) ;   4311                                                UWord s2err ) ;
4312 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;   4312 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;
4313 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;   4313 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;
4314 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,   4314 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,
4315                                       Addr *stack_max ) ;   4315                                       Addr *stack_max ) ;
4316 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;   4316 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;
4317 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;   4317 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;
4318 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;   4318 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;
4319 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;   4319 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;
4320 extern void *vgPlain_fnptr_to_fnentry(void * ) ;   4320 extern void *vgPlain_fnptr_to_fnentry(void * ) ;
4321 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;   4321 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;
4322 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;   4322 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;
4323 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;   4323 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;
4324 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;   4324 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;
4325 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,   4325 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,
4326                                          Int n_filename , Char *dirname ,   4326                                          Int n_filename , Char *dirname ,
4327                                          Int n_dirname ,   4327                                          Int n_dirname ,
4328                                          Bool *dirname_available ,   4328                                          Bool *dirname_available ,
4329                                          UInt *linenum ) ;   4329                                          UInt *linenum ) ;
4330 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;   4330 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;
4331 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;   4331 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;
4332 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;   4332 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;
4333 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,   4333 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,
4334                                            Int n_dname , PtrdiffT *offset ) ;   4334                                            Int n_dname , PtrdiffT *offset ) ;
4335 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,   4335 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,
4336                                          Addr data_addr ) ;   4336                                          Addr data_addr ) ;
4337 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;   4337 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;
4338 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;   4338 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;
4339 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;   4339 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;
4340 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,   4340 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,
4341                                                         Bool arrays_only ) ;   4341                                                         Bool arrays_only ) ;
4342 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;   4342 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;
4343 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;   4343 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;
4344 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;   4344 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;
4345 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;   4345 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;
4346 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;   4346 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;
4347 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;   4347 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;
4348 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;   4348 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;
4349 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;   4349 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;
4350 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;   4350 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;
4351 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;   4351 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;
4352 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;   4352 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;
4353 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;   4353 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;
4354 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,   4354 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,
4355                                           Addr *avma , Addr *tocptr ,   4355                                           Addr *avma , Addr *tocptr ,
4356                                           UInt *size , HChar **name ,   4356                                           UInt *size , HChar **name ,
4357                                           Bool *isText , Bool *isIFunc ) ;   4357                                           Bool *isText , Bool *isIFunc ) ;
4358 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;   4358 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;
4359 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,   4359 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,
4360                                               Addr a ) ;   4360                                               Addr a ) ;
4361 extern ThreadId vgPlain_alloc_ThreadState(void) ;   4361 extern ThreadId vgPlain_alloc_ThreadState(void) ;
4362 extern void vgPlain_exit_thread(ThreadId tid ) ;   4362 extern void vgPlain_exit_thread(ThreadId tid ) ;
4363 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;   4363 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;
4364 extern void vgPlain_nuke_all_threads_except(ThreadId me ,   4364 extern void vgPlain_nuke_all_threads_except(ThreadId me ,
4365                                             VgSchedReturnCode reason ) ;   4365                                             VgSchedReturnCode reason ) ;
4366 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;   4366 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;
4367 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;   4367 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;
4368 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,   4368 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,
4369                                     HChar *who ) ;   4369                                     HChar *who ) ;
4370 extern void vgPlain_release_BigLock_LL(HChar *who ) ;   4370 extern void vgPlain_release_BigLock_LL(HChar *who ) ;
4371 extern void vgPlain_vg_yield(void) ;   4371 extern void vgPlain_vg_yield(void) ;
4372 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   4372 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
4373 extern ThreadId vgPlain_scheduler_init_phase1(void) ;   4373 extern ThreadId vgPlain_scheduler_init_phase1(void) ;
4374 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,   4374 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,
4375                                           SizeT clstack_size ) ;   4375                                           SizeT clstack_size ) ;
4376 extern void vgPlain_disable_vgdb_poll(void) ;   4376 extern void vgPlain_disable_vgdb_poll(void) ;
4377 extern void vgPlain_force_vgdb_poll(void) ;   4377 extern void vgPlain_force_vgdb_poll(void) ;
4378 extern ULong vgPlain_bbs_done(void) ;   4378 extern ULong vgPlain_bbs_done(void) ;
4379 extern void vgPlain_print_scheduler_stats(void) ;   4379 extern void vgPlain_print_scheduler_stats(void) ;
4380 extern Bool vgPlain_in_generated_code ;   4380 extern Bool vgPlain_in_generated_code ;
4381 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;   4381 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;
4382 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;   4382 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;
4383 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;   4383 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;
4384 extern void vgPlain_post_syscall(ThreadId tid ) ;   4384 extern void vgPlain_post_syscall(ThreadId tid ) ;
4385 extern void vgPlain_clear_syscallInfo(Int tid ) ;   4385 extern void vgPlain_clear_syscallInfo(Int tid ) ;
4386 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,   4386 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,
4387                                                                 Addr ip ,   4387                                                                 Addr ip ,
4388                                                                 SysRes sysret ,   4388                                                                 SysRes sysret ,
4389                                                                 Bool restart ) ;   4389                                                                 Bool restart ) ;
4390 extern void vgPlain_reap_threads(ThreadId self ) ;   4390 extern void vgPlain_reap_threads(ThreadId self ) ;
4391 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;   4391 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;
4392 extern void vgPlain_init_preopened_fds(void) ;   4392 extern void vgPlain_init_preopened_fds(void) ;
4393 extern void vgPlain_show_open_fds(void) ;   4393 extern void vgPlain_show_open_fds(void) ;
4394 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,   4394 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,
4395                                                                    VgSchedReturnCode  ) ;   4395                                                                    VgSchedReturnCode  ) ;
4396 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,   4396 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,
4397                              void (*free_fn)(void * ) , Word elemSzB ) ;   4397                              void (*free_fn)(void * ) , Word elemSzB ) ;
4398 extern void vgPlain_deleteXA(XArray * ) ;   4398 extern void vgPlain_deleteXA(XArray * ) ;
4399 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;   4399 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;
4400 extern Word vgPlain_addToXA(XArray * , void *elem ) ;   4400 extern Word vgPlain_addToXA(XArray * , void *elem ) ;
4401 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;   4401 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;
4402 extern void vgPlain_sortXA(XArray * ) ;   4402 extern void vgPlain_sortXA(XArray * ) ;
4403 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;   4403 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;
4404 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,   4404 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,
4405                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;   4405                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;
4406 extern Word vgPlain_sizeXA(XArray * ) ;   4406 extern Word vgPlain_sizeXA(XArray * ) ;
4407 extern void *vgPlain_indexXA(XArray * , Word  ) ;   4407 extern void *vgPlain_indexXA(XArray * , Word  ) ;
4408 extern void vgPlain_dropTailXA(XArray * , Word  ) ;   4408 extern void vgPlain_dropTailXA(XArray * , Word  ) ;
4409 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;   4409 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;
4410 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;   4410 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;
4411 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;   4411 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;
4412 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,   4412 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,
4413                                                         HChar const   *format   4413                                                         HChar const   *format
4414                                                         , ...) ;   4414                                                         , ...) ;
4415 extern void vgPlain_xaprintf_no_f_c(XArray *dst , HChar const   *format  , ...) ;   4415 extern void vgPlain_xaprintf_no_f_c(XArray *dst , HChar const   *format  , ...) ;
4416 extern XArray *vgPlain_args_for_client ;   4416 extern XArray *vgPlain_args_for_client ;
4417 extern XArray *vgPlain_args_for_valgrind ;   4417 extern XArray *vgPlain_args_for_valgrind ;
4418 extern Int vgPlain_args_for_valgrind_noexecpass ;   4418 extern Int vgPlain_args_for_valgrind_noexecpass ;
4419 extern HChar const   *vgPlain_args_the_exename ;   4419 extern HChar const   *vgPlain_args_the_exename ;
4420 extern Addr vgPlain_clstk_base ;   4420 extern Addr vgPlain_clstk_base ;
4421 extern Addr vgPlain_clstk_end ;   4421 extern Addr vgPlain_clstk_end ;
4422 extern UWord vgPlain_clstk_id ;   4422 extern UWord vgPlain_clstk_id ;
4423 extern Addr vgPlain_brk_base ;   4423 extern Addr vgPlain_brk_base ;
4424 extern Addr vgPlain_brk_limit ;   4424 extern Addr vgPlain_brk_limit ;
4425 extern Int vgPlain_cl_exec_fd ;   4425 extern Int vgPlain_cl_exec_fd ;
4426 extern Int vgPlain_cl_cmdline_fd ;   4426 extern Int vgPlain_cl_cmdline_fd ;
4427 extern struct vki_rlimit vgPlain_client_rlimit_data ;   4427 extern struct vki_rlimit vgPlain_client_rlimit_data ;
4428 extern struct vki_rlimit vgPlain_client_rlimit_stack ;   4428 extern struct vki_rlimit vgPlain_client_rlimit_stack ;
4429 extern HChar *vgPlain_name_of_launcher ;   4429 extern HChar *vgPlain_name_of_launcher ;
4430 extern Int vgPlain_fd_soft_limit ;   4430 extern Int vgPlain_fd_soft_limit ;
4431 extern Int vgPlain_fd_hard_limit ;   4431 extern Int vgPlain_fd_hard_limit ;
4432 extern Addr vgPlain_client___libc_freeres_wrapper ;   4432 extern Addr vgPlain_client___libc_freeres_wrapper ;
4433 extern Addr vgPlain_client__dl_sysinfo_int80 ;   4433 extern Addr vgPlain_client__dl_sysinfo_int80 ;
4434 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;   4434 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;
4435 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;   4435 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;
4436 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,   4436 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,
4437                                      ExeContext *ec , UInt n_ips ) ;   4437                                      ExeContext *ec , UInt n_ips ) ;
4438 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;   4438 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;
4439 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;   4439 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;
4440 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;   4440 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;
4441 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;   4441 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;
4442 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;   4442 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;
4443 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;   4443 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;
4444 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )   4444 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )
4445 {   4445 {
4446   int tmp ;   4446   int tmp ;
4447     4447  
4448   {   4448   {
4449   if (ecu > 0U) {   4449   if (ecu > 0U) {
4450     if ((ecu & 3U) == 0U) {   4450     if ((ecu & 3U) == 0U) {
4451       tmp = 1;   4451       tmp = 1;
4452     } else {   4452     } else {
4453       tmp = 0;   4453       tmp = 0;
4454     }   4454     }
4455   } else {   4455   } else {
4456     tmp = 0;   4456     tmp = 0;
4457   }   4457   }
4458   return ((Bool )tmp);   4458   return ((Bool )tmp);
4459 }   4459 }
4460 }   4460 }
4461 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,   4461 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,
4462                                                            UInt n_ips ) ;   4462                                                            UInt n_ips ) ;
4463 extern ExeContext *vgPlain_get_error_where(Error *err ) ;   4463 extern ExeContext *vgPlain_get_error_where(Error *err ) ;
4464 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;   4464 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;
4465 extern Addr vgPlain_get_error_address(Error *err ) ;   4465 extern Addr vgPlain_get_error_address(Error *err ) ;
4466 extern Char *vgPlain_get_error_string(Error *err ) ;   4466 extern Char *vgPlain_get_error_string(Error *err ) ;
4467 extern void *vgPlain_get_error_extra(Error *err ) ;   4467 extern void *vgPlain_get_error_extra(Error *err ) ;
4468 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,   4468 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,
4469                                        Char *s , void *extra ) ;   4469                                        Char *s , void *extra ) ;
4470 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,   4470 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,
4471                                  Char *s , void *extra , ExeContext *where ,   4471                                  Char *s , void *extra , ExeContext *where ,
4472                                  Bool print_error , Bool allow_GDB_attach ,   4472                                  Bool print_error , Bool allow_GDB_attach ,
4473                                  Bool count_error ) ;   4473                                  Bool count_error ) ;
4474 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;   4474 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;
4475 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;   4475 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;
4476 extern Char *vgPlain_get_supp_string(Supp *su ) ;   4476 extern Char *vgPlain_get_supp_string(Supp *su ) ;
4477 extern void *vgPlain_get_supp_extra(Supp *su ) ;   4477 extern void *vgPlain_get_supp_extra(Supp *su ) ;
4478 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;   4478 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;
4479 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;   4479 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;
4480 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;   4480 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;
4481 extern void vgPlain_load_suppressions(void) ;   4481 extern void vgPlain_load_suppressions(void) ;
4482 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;   4482 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;
4483 extern void vgPlain_show_last_error(void) ;   4483 extern void vgPlain_show_last_error(void) ;
4484 extern void vgPlain_show_error_counts_as_XML(void) ;   4484 extern void vgPlain_show_error_counts_as_XML(void) ;
4485 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;   4485 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;
4486 extern Bool vgPlain_showing_core_errors(void) ;   4486 extern Bool vgPlain_showing_core_errors(void) ;
4487 extern UInt vgPlain_get_n_errs_found(void) ;   4487 extern UInt vgPlain_get_n_errs_found(void) ;
4488 extern void vgPlain_print_errormgr_stats(void) ;   4488 extern void vgPlain_print_errormgr_stats(void) ;
4489 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;   4489 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;
4490 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;   4490 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;
4491 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;   4491 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;
4492 extern void vgPlain_close(Int fd ) ;   4492 extern void vgPlain_close(Int fd ) ;
4493 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;   4493 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;
4494 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;   4494 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;
4495 extern Int vgPlain_pipe(Int *fd ) ;   4495 extern Int vgPlain_pipe(Int *fd ) ;
4496 extern OffT vgPlain_lseek(Int fd , OffT offset , Int whence ) ;   4496 extern OffT vgPlain_lseek(Int fd , OffT offset , Int whence ) ;
4497 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;   4497 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;
4498 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;   4498 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;
4499 extern SysRes vgPlain_dup(Int oldfd ) ;   4499 extern SysRes vgPlain_dup(Int oldfd ) ;
4500 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;   4500 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;
4501 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;   4501 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;
4502 extern Int vgPlain_unlink(Char const   *file_name ) ;   4502 extern Int vgPlain_unlink(Char const   *file_name ) ;
4503 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;   4503 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;
4504 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;   4504 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;
4505 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;   4505 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;
4506 extern Char *vgPlain_basename(Char const   *path ) ;   4506 extern Char *vgPlain_basename(Char const   *path ) ;
4507 extern Char *vgPlain_dirname(Char const   *path ) ;   4507 extern Char *vgPlain_dirname(Char const   *path ) ;
4508 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;   4508 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;
4509 extern Int vgPlain_safe_fd(Int oldfd ) ;   4509 extern Int vgPlain_safe_fd(Int oldfd ) ;
4510 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;   4510 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;
4511 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;   4511 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;
4512 extern Long vgPlain_fsize(Int fd ) ;   4512 extern Long vgPlain_fsize(Int fd ) ;
4513 extern Bool vgPlain_is_dir(HChar const   *f ) ;   4513 extern Bool vgPlain_is_dir(HChar const   *f ) ;
4514 extern Int vgPlain_connect_via_socket(UChar *str ) ;   4514 extern Int vgPlain_connect_via_socket(UChar *str ) ;
4515 extern UInt vgPlain_htonl(UInt x ) ;   4515 extern UInt vgPlain_htonl(UInt x ) ;
4516 extern UInt vgPlain_ntohl(UInt x ) ;   4516 extern UInt vgPlain_ntohl(UInt x ) ;
4517 extern UShort vgPlain_htons(UShort x ) ;   4517 extern UShort vgPlain_htons(UShort x ) ;
4518 extern UShort vgPlain_ntohs(UShort x ) ;   4518 extern UShort vgPlain_ntohs(UShort x ) ;
4519 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;   4519 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;
4520 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;   4520 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;
4521 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,   4521 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,
4522                                Int *namelen ) ;   4522                                Int *namelen ) ;
4523 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,   4523 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,
4524                                Int *namelen ) ;   4524                                Int *namelen ) ;
4525 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,   4525 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,
4526                               Int *optlen ) ;   4526                               Int *optlen ) ;
4527 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,   4527 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,
4528                           Bool ixusr ) ;   4528                           Bool ixusr ) ;
4529 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,   4529 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,
4530                                     Bool allow_setuid ) ;   4530                                     Bool allow_setuid ) ;
4531 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;   4531 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;
4532 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;   4532 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;
4533 extern Bool vgPlain_record_startup_wd(void) ;   4533 extern Bool vgPlain_record_startup_wd(void) ;
4534 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,   4534 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,
4535                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;   4535                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;
4536 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;   4536 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;
4537 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;   4537 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;
4538 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;   4538 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;
4539 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;   4539 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;
4540 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;   4540 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;
4541 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;   4541 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;
4542 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;   4542 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;
4543 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,   4543 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,
4544                                            UInt wHI , UInt wLO ) ;   4544                                            UInt wHI , UInt wLO ) ;
4545 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,   4545 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,
4546                                              ULong wHI , ULong wLO ) ;   4546                                              ULong wHI , ULong wLO ) ;
4547 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;   4547 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;
4548 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;   4548 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;
4549 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;   4549 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;
4550 extern HChar const   *vgPlain_strerror(UWord errnum ) ;   4550 extern HChar const   *vgPlain_strerror(UWord errnum ) ;
4551 extern void (*vgPlain_tl_pre_clo_init)(void) ;   4551 extern void (*vgPlain_tl_pre_clo_init)(void) ;
4552 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,   4552 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,
4553                                      IRSB *(*instrument)(VgCallbackClosure *closure ,   4553                                      IRSB *(*instrument)(VgCallbackClosure *closure ,
4554                                                          IRSB *sb_in ,   4554                                                          IRSB *sb_in ,
4555                                                          VexGuestLayout *layout ,   4555                                                          VexGuestLayout *layout ,
4556                                                          VexGuestExtents *vge ,   4556                                                          VexGuestExtents *vge ,
4557                                                          IRType gWordTy ,   4557                                                          IRType gWordTy ,
4558                                                          IRType hWordTy ) ,   4558                                                          IRType hWordTy ) ,
4559                                      void (*fini)(Int  ) ) ;   4559                                      void (*fini)(Int  ) ) ;
4560 extern void vgPlain_details_name(Char *name ) ;   4560 extern void vgPlain_details_name(Char *name ) ;
4561 extern void vgPlain_details_version(Char *version ) ;   4561 extern void vgPlain_details_version(Char *version ) ;
4562 extern void vgPlain_details_description(Char *description ) ;   4562 extern void vgPlain_details_description(Char *description ) ;
4563 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;   4563 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;
4564 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;   4564 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;
4565 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;   4565 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;
4566 extern void vgPlain_needs_libc_freeres(void) ;   4566 extern void vgPlain_needs_libc_freeres(void) ;
4567 extern void vgPlain_needs_core_errors(void) ;   4567 extern void vgPlain_needs_core_errors(void) ;
4568 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,   4568 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,
4569                                                        Error *e2 ) ,   4569                                                        Error *e2 ) ,
4570                                       void (*before_pp_Error)(Error *err ) ,   4570                                       void (*before_pp_Error)(Error *err ) ,
4571                                       void (*pp_Error)(Error *err ) ,   4571                                       void (*pp_Error)(Error *err ) ,
4572                                       Bool show_ThreadIDs_for_errors ,   4572                                       Bool show_ThreadIDs_for_errors ,
4573                                       UInt (*update_extra)(Error *err ) ,   4573                                       UInt (*update_extra)(Error *err ) ,
4574                                       Bool (*recognised_suppression)(Char *name ,   4574                                       Bool (*recognised_suppression)(Char *name ,
4575                                                                      Supp *su ) ,   4575                                                                      Supp *su ) ,
4576                                       Bool (*read_extra_suppression_info)(Int fd ,   4576                                       Bool (*read_extra_suppression_info)(Int fd ,
4577                                                                           Char **bufpp ,   4577                                                                           Char **bufpp ,
4578                                                                           SizeT *nBufp ,   4578                                                                           SizeT *nBufp ,
4579                                                                           Supp *su ) ,   4579                                                                           Supp *su ) ,
4580                                       Bool (*error_matches_suppression)(Error *err ,   4580                                       Bool (*error_matches_suppression)(Error *err ,
4581                                                                         Supp *su ) ,   4581                                                                         Supp *su ) ,
4582                                       Char *(*get_error_name)(Error *err ) ,   4582                                       Char *(*get_error_name)(Error *err ) ,
4583                                       Bool (*print_extra_suppression_info)(Error *err ,   4583                                       Bool (*print_extra_suppression_info)(Error *err ,
4584                                                                            Char *buf ,   4584                                                                            Char *buf ,
4585                                                                            Int nBuf ) ) ;   4585                                                                            Int nBuf ) ) ;
4586 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,   4586 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,
4587                                                                               VexGuestExtents extents ) ) ;   4587                                                                               VexGuestExtents extents ) ) ;
4588 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,   4588 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,
4589                                                void (*print_usage)(void) ,   4589                                                void (*print_usage)(void) ,
4590                                                void (*print_debug_usage)(void) ) ;   4590                                                void (*print_debug_usage)(void) ) ;
4591 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,   4591 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,
4592                                                                         UWord *arg_block ,   4592                                                                         UWord *arg_block ,
4593                                                                         UWord *ret ) ) ;   4593                                                                         UWord *ret ) ) ;
4594 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,   4594 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,
4595                                                               UInt syscallno ,   4595                                                               UInt syscallno ,
4596                                                               UWord *args ,   4596                                                               UWord *args ,
4597                                                               UInt nArgs ) ,   4597                                                               UInt nArgs ) ,
4598                                           void (*post_syscall)(ThreadId tid ,   4598                                           void (*post_syscall)(ThreadId tid ,
4599                                                                UInt syscallno ,   4599                                                                UInt syscallno ,
4600                                                                UWord *args ,   4600                                                                UWord *args ,
4601                                                                UInt nArgs ,   4601                                                                UInt nArgs ,
4602                                                                SysRes res ) ) ;   4602                                                                SysRes res ) ) ;
4603 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,   4603 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,
4604                                         Bool (*expensive_sanity_check)(void) ) ;   4604                                         Bool (*expensive_sanity_check)(void) ) ;
4605 extern void vgPlain_needs_var_info(void) ;   4605 extern void vgPlain_needs_var_info(void) ;
4606 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,   4606 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,
4607                                                               SizeT n ) ,   4607                                                               SizeT n ) ,
4608                                              void *(*p__builtin_new)(ThreadId tid ,   4608                                              void *(*p__builtin_new)(ThreadId tid ,
4609                                                                      SizeT n ) ,   4609                                                                      SizeT n ) ,
4610                                              void *(*p__builtin_vec_new)(ThreadId tid ,   4610                                              void *(*p__builtin_vec_new)(ThreadId tid ,
4611                                                                          SizeT n ) ,   4611                                                                          SizeT n ) ,
4612                                              void *(*pmemalign)(ThreadId tid ,   4612                                              void *(*pmemalign)(ThreadId tid ,
4613                                                                 SizeT align ,   4613                                                                 SizeT align ,
4614                                                                 SizeT n ) ,   4614                                                                 SizeT n ) ,
4615                                              void *(*pcalloc)(ThreadId tid ,   4615                                              void *(*pcalloc)(ThreadId tid ,
4616                                                               SizeT nmemb ,   4616                                                               SizeT nmemb ,
4617                                                               SizeT size1 ) ,   4617                                                               SizeT size1 ) ,
4618                                              void (*pfree)(ThreadId tid ,   4618                                              void (*pfree)(ThreadId tid ,
4619                                                            void *p ) ,   4619                                                            void *p ) ,
4620                                              void (*p__builtin_delete)(ThreadId tid ,   4620                                              void (*p__builtin_delete)(ThreadId tid ,
4621                                                                        void *p ) ,   4621                                                                        void *p ) ,
4622                                              void (*p__builtin_vec_delete)(ThreadId tid ,   4622                                              void (*p__builtin_vec_delete)(ThreadId tid ,
4623                                                                            void *p ) ,   4623                                                                            void *p ) ,
4624                                              void *(*prealloc)(ThreadId tid ,   4624                                              void *(*prealloc)(ThreadId tid ,
4625                                                                void *p ,   4625                                                                void *p ,
4626                                                                SizeT new_size ) ,   4626                                                                SizeT new_size ) ,
4627                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,   4627                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,
4628                                                                           void *p ) ,   4628                                                                           void *p ) ,
4629                                              SizeT client_malloc_redzone_szB ) ;   4629                                              SizeT client_malloc_redzone_szB ) ;
4630 extern void vgPlain_needs_xml_output(void) ;   4630 extern void vgPlain_needs_xml_output(void) ;
4631 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;   4631 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;
4632 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,   4632 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,
4633                                                     Bool rr , Bool ww ,   4633                                                     Bool rr , Bool ww ,
4634                                                     Bool xx , ULong di_handle ) ) ;   4634                                                     Bool xx , ULong di_handle ) ) ;
4635 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,   4635 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,
4636                                                          ThreadId tid ) ) ;   4636                                                          ThreadId tid ) ) ;
4637 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,   4637 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,
4638                                                 ThreadId tid ) ) ;   4638                                                 ThreadId tid ) ) ;
4639 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,   4639 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,
4640                                                  Bool ww , Bool xx ,   4640                                                  Bool ww , Bool xx ,
4641                                                  ULong di_handle ) ) ;   4641                                                  ULong di_handle ) ) ;
4642 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,   4642 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,
4643                                                    SizeT len ) ) ;   4643                                                    SizeT len ) ) ;
4644 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,   4644 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,
4645                                                         Bool rr , Bool ww ,   4645                                                         Bool rr , Bool ww ,
4646                                                         Bool xx ) ) ;   4646                                                         Bool xx ) ) ;
4647 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;   4647 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;
4648 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;   4648 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;
4649 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;   4649 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;
4650 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4650 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4651                                                                                              UInt ecu ) ) ;   4651                                                                                              UInt ecu ) ) ;
4652 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4652 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4653                                                                                              UInt ecu ) ) ;   4653                                                                                              UInt ecu ) ) ;
4654 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4654 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4655                                                                                               UInt ecu ) ) ;   4655                                                                                               UInt ecu ) ) ;
4656 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4656 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4657                                                                                               UInt ecu ) ) ;   4657                                                                                               UInt ecu ) ) ;
4658 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4658 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4659                                                                                               UInt ecu ) ) ;   4659                                                                                               UInt ecu ) ) ;
4660 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4660 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4661                                                                                                UInt ecu ) ) ;   4661                                                                                                UInt ecu ) ) ;
4662 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4662 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4663                                                                                                UInt ecu ) ) ;   4663                                                                                                UInt ecu ) ) ;
4664 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4664 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4665                                                                                                UInt ecu ) ) ;   4665                                                                                                UInt ecu ) ) ;
4666 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4666 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4667                                                                                                UInt ecu ) ) ;   4667                                                                                                UInt ecu ) ) ;
4668 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,   4668 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,
4669                                                         UInt ecu ) ) ;   4669                                                         UInt ecu ) ) ;
4670 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4670 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4671 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4671 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4672 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4672 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4673 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4673 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4674 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4674 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4675 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4675 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4676 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4676 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4677 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4677 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4678 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4678 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4679 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4679 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4680 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4680 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4681 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4681 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4682 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4682 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4683 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4683 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4684 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4684 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4685 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4685 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4686 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4686 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4687 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4687 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4688 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4688 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4689 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4689 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4690 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4690 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4691 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,   4691 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,
4692                                                  Char *s , Addr a , SizeT size ) ) ;   4692                                                  Char *s , Addr a , SizeT size ) ) ;
4693 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,   4693 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,
4694                                                         ThreadId tid , Char *s ,   4694                                                         ThreadId tid , Char *s ,
4695                                                         Addr a ) ) ;   4695                                                         Addr a ) ) ;
4696 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,   4696 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,
4697                                                   Char *s , Addr a , SizeT size ) ) ;   4697                                                   Char *s , Addr a , SizeT size ) ) ;
4698 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,   4698 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,
4699                                                    ThreadId tid , Addr a ,   4699                                                    ThreadId tid , Addr a ,
4700                                                    SizeT size ) ) ;   4700                                                    SizeT size ) ) ;
4701 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,   4701 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,
4702                                                  Char *s ,   4702                                                  Char *s ,
4703                                                  PtrdiffT guest_state_offset ,   4703                                                  PtrdiffT guest_state_offset ,
4704                                                  SizeT size ) ) ;   4704                                                  SizeT size ) ) ;
4705 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,   4705 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,
4706                                                    ThreadId tid ,   4706                                                    ThreadId tid ,
4707                                                    PtrdiffT guest_state_offset ,   4707                                                    PtrdiffT guest_state_offset ,
4708                                                    SizeT size ) ) ;   4708                                                    SizeT size ) ) ;
4709 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,   4709 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,
4710                                                                      PtrdiffT guest_state_offset ,   4710                                                                      PtrdiffT guest_state_offset ,
4711                                                                      SizeT size ,   4711                                                                      SizeT size ,
4712                                                                      Addr f ) ) ;   4712                                                                      Addr f ) ) ;
4713 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,   4713 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,
4714                                                       ULong blocks_dispatched ) ) ;   4714                                                       ULong blocks_dispatched ) ) ;
4715 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,   4715 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,
4716                                                      ULong blocks_dispatched ) ) ;   4716                                                      ULong blocks_dispatched ) ) ;
4717 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,   4717 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,
4718                                                          ThreadId child ) ) ;   4718                                                          ThreadId child ) ) ;
4719 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;   4719 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;
4720 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;   4720 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;
4721 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,   4721 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,
4722                                                        Int sigNo ,   4722                                                        Int sigNo ,
4723                                                        Bool alt_stack ) ) ;   4723                                                        Bool alt_stack ) ) ;
4724 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,   4724 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,
4725                                                         Int sigNo ) ) ;   4725                                                         Int sigNo ) ) ;
4726 extern VgDetails vgPlain_details ;   4726 extern VgDetails vgPlain_details ;
4727 extern VgNeeds vgPlain_needs ;   4727 extern VgNeeds vgPlain_needs ;
4728 extern VgToolInterface vgPlain_tdict ;   4728 extern VgToolInterface vgPlain_tdict ;
4729 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;   4729 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;
4730 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;   4730 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;
4731 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;   4731 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;
4732 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;   4732 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;
4733 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;   4733 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;
4734 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;   4734 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;
4735 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;   4735 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;
4736 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;   4736 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;
4737 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;   4737 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;
4738 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,   4738 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,
4739                                                             SizeT len ,   4739                                                             SizeT len ,
4740                                                             UInt prot ) ;   4740                                                             UInt prot ) ;
4741 extern ULong vgPlain_am_get_anonsize_total(void) ;   4741 extern ULong vgPlain_am_get_anonsize_total(void) ;
4742 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;   4742 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;
4743 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,   4743 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,
4744                                      Int line ) ;   4744                                      Int line ) ;
4745 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;   4745 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;
4746 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,   4746 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,
4747                                                   Bool *ok ) ;   4747                                                   Bool *ok ) ;
4748 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,   4748 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,
4749                                           UInt flags , Int fd , Off64T offset ) ;   4749                                           UInt flags , Int fd , Off64T offset ) ;
4750 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;   4750 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;
4751 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;   4751 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;
4752 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;   4752 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;
4753 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,   4753 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,
4754                                            UInt prot , UInt flags , Int fd ,   4754                                            UInt prot , UInt flags , Int fd ,
4755                                            Off64T offset ) ;   4755                                            Off64T offset ) ;
4756 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,   4756 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,
4757                                            Int *ndirectives ) ;   4757                                            Int *ndirectives ) ;
4758 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;   4758 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;
4759 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;   4759 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;
4760 extern Bool vgPlain_am_aix5_sbrk_allowed ;   4760 extern Bool vgPlain_am_aix5_sbrk_allowed ;
4761 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,   4761 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,
4762                                                 UInt prot , Int fd ,   4762                                                 UInt prot , Int fd ,
4763                                                 Off64T offset ) ;   4763                                                 Off64T offset ) ;
4764 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,   4764 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,
4765                                                       SizeT length , UInt prot ,   4765                                                       SizeT length , UInt prot ,
4766                                                       Int fd , Off64T offset ,   4766                                                       Int fd , Off64T offset ,
4767                                                       HChar const   *name ) ;   4767                                                       HChar const   *name ) ;
4768 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,   4768 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,
4769                                                 UInt prot ) ;   4769                                                 UInt prot ) ;
4770 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;   4770 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;
4771 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;   4771 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;
4772 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;   4772 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;
4773 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;   4773 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;
4774 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,   4774 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,
4775                                                   Int fd , Off64T offset ) ;   4775                                                   Int fd , Off64T offset ) ;
4776 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,   4776 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,
4777                                                          UInt prot , Int fd ,   4777                                                          UInt prot , Int fd ,
4778                                                          Off64T offset ) ;   4778                                                          Off64T offset ) ;
4779 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,   4779 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,
4780                                        SizeT length ) ;   4780                                        SizeT length ) ;
4781 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;   4781 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;
4782 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;   4782 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;
4783 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;   4783 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;
4784 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,   4784 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,
4785                                           ShrinkMode smode , SSizeT extra ) ;   4785                                           ShrinkMode smode , SSizeT extra ) ;
4786 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,   4786 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,
4787                                                                SSizeT delta ) ;   4787                                                                SSizeT delta ) ;
4788 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,   4788 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,
4789                                          SizeT delta ) ;   4789                                          SizeT delta ) ;
4790 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,   4790 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,
4791                                                  Addr old_addr , SizeT old_len ,   4791                                                  Addr old_addr , SizeT old_len ,
4792                                                  Addr new_addr , SizeT new_len ) ;   4792                                                  Addr new_addr , SizeT new_len ) ;
4793 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;   4793 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;
4794 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;   4794 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;
4795 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4795 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4796                                                       , ...)  __attribute__((__unused__)) ;   4796                                                       , ...)  __attribute__((__unused__)) ;
4797 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4797 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4798                                                       , ...)  __attribute__((__unused__)) ;   4798                                                       , ...)  __attribute__((__unused__)) ;
4799 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   4799 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
4800                                                       , ...)   4800                                                       , ...)
4801 {   4801 {
4802   unsigned long _qzz_res ;   4802   unsigned long _qzz_res ;
4803   va_list vargs ;   4803   va_list vargs ;
4804   unsigned int volatile   _zzq_args[6] ;   4804   unsigned int volatile   _zzq_args[6] ;
4805   unsigned int volatile   _zzq_result ;   4805   unsigned int volatile   _zzq_result ;
4806     4806  
4807   {   4807   {
4808   __builtin_va_start(vargs, format);   4808   __builtin_va_start(vargs, format);
4809   _zzq_args[0] = (unsigned int volatile   )5123U;   4809   _zzq_args[0] = (unsigned int volatile   )5123U;
4810   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   4810   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
4811   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   4811   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
4812   _zzq_args[3] = (unsigned int volatile   )0U;   4812   _zzq_args[3] = (unsigned int volatile   )0U;
4813   _zzq_args[4] = (unsigned int volatile   )0U;   4813   _zzq_args[4] = (unsigned int volatile   )0U;
4814   _zzq_args[5] = (unsigned int volatile   )0U;   4814   _zzq_args[5] = (unsigned int volatile   )0U;
4815   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   4815   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
4816                        "roll $29, %%edi ; roll $19, %%edi\n\t"   4816                        "roll $29, %%edi ; roll $19, %%edi\n\t"
4817                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   4817                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
4818                        "0" (0): "cc", "memory");   4818                        "0" (0): "cc", "memory");
4819   _qzz_res = (unsigned long )_zzq_result;   4819   _qzz_res = (unsigned long )_zzq_result;
4820   __builtin_va_end(vargs);   4820   __builtin_va_end(vargs);
4821   return ((int )_qzz_res);   4821   return ((int )_qzz_res);
4822 }   4822 }
4823 }   4823 }
4824 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4824 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4825                                                                 , ...)  __attribute__((__unused__)) ;   4825                                                                 , ...)  __attribute__((__unused__)) ;
4826 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4826 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4827                                                                 , ...)  __attribute__((__unused__)) ;   4827                                                                 , ...)  __attribute__((__unused__)) ;
4828 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   4828 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
4829                                                                 , ...)   4829                                                                 , ...)
4830 {   4830 {
4831   unsigned long _qzz_res ;   4831   unsigned long _qzz_res ;
4832   va_list vargs ;   4832   va_list vargs ;
4833   unsigned int volatile   _zzq_args[6] ;   4833   unsigned int volatile   _zzq_args[6] ;
4834   unsigned int volatile   _zzq_result ;   4834   unsigned int volatile   _zzq_result ;
4835     4835  
4836   {   4836   {
4837   __builtin_va_start(vargs, format);   4837   __builtin_va_start(vargs, format);
4838   _zzq_args[0] = (unsigned int volatile   )5124U;   4838   _zzq_args[0] = (unsigned int volatile   )5124U;
4839   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   4839   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
4840   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   4840   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
4841   _zzq_args[3] = (unsigned int volatile   )0U;   4841   _zzq_args[3] = (unsigned int volatile   )0U;
4842   _zzq_args[4] = (unsigned int volatile   )0U;   4842   _zzq_args[4] = (unsigned int volatile   )0U;
4843   _zzq_args[5] = (unsigned int volatile   )0U;   4843   _zzq_args[5] = (unsigned int volatile   )0U;
4844   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   4844   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
4845                        "roll $29, %%edi ; roll $19, %%edi\n\t"   4845                        "roll $29, %%edi ; roll $19, %%edi\n\t"
4846                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   4846                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
4847                        "0" (0): "cc", "memory");   4847                        "0" (0): "cc", "memory");
4848   _qzz_res = (unsigned long )_zzq_result;   4848   _qzz_res = (unsigned long )_zzq_result;
4849   __builtin_va_end(vargs);   4849   __builtin_va_end(vargs);
4850   return ((int )_qzz_res);   4850   return ((int )_qzz_res);
4851 }   4851 }
4852 }   4852 }
4853 extern void gdbserver_init(void) ;   4853 extern void gdbserver_init(void) ;
4854 extern void server_main(void) ;   4854 extern void server_main(void) ;
4855 extern void gdbserver_terminate(void) ;   4855 extern void gdbserver_terminate(void) ;
4856 extern void monitor_output(char *s ) ;   4856 extern void monitor_output(char *s ) ;
4857 extern int remote_desc_activity(char *msg ) ;   4857 extern int remote_desc_activity(char *msg ) ;
4858 extern void remote_utils_output_status(void) ;   4858 extern void remote_utils_output_status(void) ;
4859 extern Bool remote_connected(void) ;   4859 extern Bool remote_connected(void) ;
4860 extern void remote_finish(FinishReason reason ) ;   4860 extern void remote_finish(FinishReason reason ) ;
4861 extern void reset_valgrind_sink(char *info ) ;   4861 extern void reset_valgrind_sink(char *info ) ;
4862 extern Addr thumb_pc(Addr pc ) ;   4862 extern Addr thumb_pc(Addr pc ) ;
4863 extern Bool valgrind_single_stepping(void) ;   4863 extern Bool valgrind_single_stepping(void) ;
4864 extern void valgrind_set_single_stepping(Bool  ) ;   4864 extern void valgrind_set_single_stepping(Bool  ) ;
4865 extern Addr valgrind_get_ignore_break_once(void) ;   4865 extern Addr valgrind_get_ignore_break_once(void) ;
4866 extern void vgPlain_set_watchpoint_stop_address(Addr addr ) ;   4866 extern void vgPlain_set_watchpoint_stop_address(Addr addr ) ;
4867 extern ThreadId vgdb_interrupted_tid ;   4867 extern ThreadId vgdb_interrupted_tid ;
4868 extern void *new_register_cache(void) ;   4868 extern void *new_register_cache(void) ;
4869 extern void free_register_cache(void *regcache ) ;   4869 extern void free_register_cache(void *regcache ) ;
4870 extern void regcache_invalidate_one(struct inferior_list_entry * ) ;   4870 extern void regcache_invalidate_one(struct inferior_list_entry * ) ;
4871 extern void regcache_invalidate(void) ;   4871 extern void regcache_invalidate(void) ;
4872 extern void registers_to_string(char *buf ) ;   4872 extern void registers_to_string(char *buf ) ;
4873 extern void registers_from_string(char *buf ) ;   4873 extern void registers_from_string(char *buf ) ;
4874 extern int registers_length(void) ;   4874 extern int registers_length(void) ;
4875 extern struct reg *find_register_by_number(int n ) ;   4875 extern struct reg *find_register_by_number(int n ) ;
4876 extern int register_size(int n ) ;   4876 extern int register_size(int n ) ;
4877 extern int find_regno(char const   *name ) ;   4877 extern int find_regno(char const   *name ) ;
4878 extern char const   **gdbserver_expedite_regs ;   4878 extern char const   **gdbserver_expedite_regs ;
4879 extern void supply_register(int n , void const   *buf , Bool *mod ) ;   4879 extern void supply_register(int n , void const   *buf , Bool *mod ) ;
4880 extern void supply_register_from_string(int n , char const   *buf , Bool *mod ) ;   4880 extern void supply_register_from_string(int n , char const   *buf , Bool *mod ) ;
4881 extern void supply_register_by_name(char const   *name , void const   *buf ,   4881 extern void supply_register_by_name(char const   *name , void const   *buf ,
4882                                     Bool *mod ) ;   4882                                     Bool *mod ) ;
4883 extern void collect_register(int n , void *buf ) ;   4883 extern void collect_register(int n , void *buf ) ;
4884 extern void collect_register_as_string(int n , char *buf ) ;   4884 extern void collect_register_as_string(int n , char *buf ) ;
4885 extern void collect_register_by_name(char const   *name , void *buf ) ;   4885 extern void collect_register_by_name(char const   *name , void *buf ) ;
4886 extern void gdbserver_signal_encountered(Int sigNo ) ;   4886 extern void gdbserver_signal_encountered(Int sigNo ) ;
4887 extern Bool gdbserver_deliver_signal(Int sigNo ) ;   4887 extern Bool gdbserver_deliver_signal(Int sigNo ) ;
4888 int pass_signals[151]  ;   4888 int pass_signals[151]  ;
4889 extern struct target_ops *the_target ;   4889 extern struct target_ops *the_target ;
4890 extern void set_target_ops(struct target_ops * ) ;   4890 extern void set_target_ops(struct target_ops * ) ;
4891 extern int read_inferior_memory(CORE_ADDR memaddr , unsigned char *myaddr ,   4891 extern int read_inferior_memory(CORE_ADDR memaddr , unsigned char *myaddr ,
4892                                 int len ) ;   4892                                 int len ) ;
4893 extern int write_inferior_memory(CORE_ADDR memaddr ,   4893 extern int write_inferior_memory(CORE_ADDR memaddr ,
4894                                  unsigned char const   *myaddr , int len ) ;   4894                                  unsigned char const   *myaddr , int len ) ;
4895 extern void set_desired_inferior(int id ) ;   4895 extern void set_desired_inferior(int id ) ;
4896 extern void *vgPlain_dmemcpy(void *d , void const   *s , SizeT sz , Bool *mod ) ;   4896 extern void *vgPlain_dmemcpy(void *d , void const   *s , SizeT sz , Bool *mod ) ;
4897 extern void vgPlain_transfer(void *valgrind , void *gdbserver ,   4897 extern void vgPlain_transfer(void *valgrind , void *gdbserver ,
4898                              transfer_direction dir , SizeT sz , Bool *mod ) ;   4898                              transfer_direction dir , SizeT sz , Bool *mod ) ;
4899 extern void initialize_low(void) ;   4899 extern void initialize_low(void) ;
4900 extern void initialize_shadow_low(Bool shadow_mode ) ;   4900 extern void initialize_shadow_low(Bool shadow_mode ) ;
4901 extern struct inferior_list all_threads ;   4901 extern struct inferior_list all_threads ;
4902 extern void add_inferior_to_list(struct inferior_list *list ,   4902 extern void add_inferior_to_list(struct inferior_list *list ,
4903                                  struct inferior_list_entry *new_inferior ) ;   4903                                  struct inferior_list_entry *new_inferior ) ;
4904 extern void for_each_inferior(struct inferior_list *list ,   4904 extern void for_each_inferior(struct inferior_list *list ,
4905                               void (*action)(struct inferior_list_entry * ) ) ;   4905                               void (*action)(struct inferior_list_entry * ) ) ;
4906 extern struct thread_info *current_inferior ;   4906 extern struct thread_info *current_inferior ;
4907 extern void remove_inferior(struct inferior_list *list ,   4907 extern void remove_inferior(struct inferior_list *list ,
4908                             struct inferior_list_entry *entry ) ;   4908                             struct inferior_list_entry *entry ) ;
4909 extern void remove_thread(struct thread_info *thread ) ;   4909 extern void remove_thread(struct thread_info *thread ) ;
4910 extern void add_thread(unsigned long thread_id , void *target_data ,   4910 extern void add_thread(unsigned long thread_id , void *target_data ,
4911                        unsigned int  ) ;   4911                        unsigned int  ) ;
4912 extern unsigned int thread_id_to_gdb_id(unsigned long  ) ;   4912 extern unsigned int thread_id_to_gdb_id(unsigned long  ) ;
4913 extern unsigned int thread_to_gdb_id(struct thread_info * ) ;   4913 extern unsigned int thread_to_gdb_id(struct thread_info * ) ;
4914 extern unsigned long gdb_id_to_thread_id(unsigned int  ) ;   4914 extern unsigned long gdb_id_to_thread_id(unsigned int  ) ;
4915 extern struct thread_info *gdb_id_to_thread(unsigned int  ) ;   4915 extern struct thread_info *gdb_id_to_thread(unsigned int  ) ;
4916 extern void clear_inferiors(void) ;   4916 extern void clear_inferiors(void) ;
4917 extern struct inferior_list_entry *find_inferior(struct inferior_list * ,   4917 extern struct inferior_list_entry *find_inferior(struct inferior_list * ,
4918                                                  int (*func)(struct inferior_list_entry * ,   4918                                                  int (*func)(struct inferior_list_entry * ,
4919                                                              void * ) ,   4919                                                              void * ) ,
4920                                                  void *arg ) ;   4920                                                  void *arg ) ;
4921 extern struct inferior_list_entry *find_inferior_id(struct inferior_list *list ,   4921 extern struct inferior_list_entry *find_inferior_id(struct inferior_list *list ,
4922                                                     unsigned long id ) ;   4922                                                     unsigned long id ) ;
4923 extern void *inferior_target_data(struct thread_info * ) ;   4923 extern void *inferior_target_data(struct thread_info * ) ;
4924 extern void set_inferior_target_data(struct thread_info * , void * ) ;   4924 extern void set_inferior_target_data(struct thread_info * , void * ) ;
4925 extern void *inferior_regcache_data(struct thread_info * ) ;   4925 extern void *inferior_regcache_data(struct thread_info * ) ;
4926 extern void set_inferior_regcache_data(struct thread_info * , void * ) ;   4926 extern void set_inferior_regcache_data(struct thread_info * , void * ) ;
4927 extern void change_inferior_id(struct inferior_list *list ,   4927 extern void change_inferior_id(struct inferior_list *list ,
4928                                unsigned long new_id ) ;   4928                                unsigned long new_id ) ;
4929 extern unsigned long cont_thread ;   4929 extern unsigned long cont_thread ;
4930 extern unsigned long general_thread ;   4930 extern unsigned long general_thread ;
4931 extern unsigned long step_thread ;   4931 extern unsigned long step_thread ;
4932 extern unsigned long thread_from_wait ;   4932 extern unsigned long thread_from_wait ;
4933 extern unsigned long old_thread_from_wait ;   4933 extern unsigned long old_thread_from_wait ;
4934 extern jmp_buf toplevel ;   4934 extern jmp_buf toplevel ;
4935 extern Bool noack_mode ;   4935 extern Bool noack_mode ;
4936 extern int putpkt(char *buf ) ;   4936 extern int putpkt(char *buf ) ;
4937 extern int putpkt_binary(char *buf , int len ) ;   4937 extern int putpkt_binary(char *buf , int len ) ;
4938 extern int getpkt(char *buf ) ;   4938 extern int getpkt(char *buf ) ;
4939 extern void remote_open(char *name ) ;   4939 extern void remote_open(char *name ) ;
4940 extern void remote_close(void) ;   4940 extern void remote_close(void) ;
4941 extern void sync_gdb_connection(void) ;   4941 extern void sync_gdb_connection(void) ;
4942 extern void write_ok(char *buf ) ;   4942 extern void write_ok(char *buf ) ;
4943 extern void write_enn(char *buf ) ;   4943 extern void write_enn(char *buf ) ;
4944 extern void convert_ascii_to_int(char *from , unsigned char *to , int n ) ;   4944 extern void convert_ascii_to_int(char *from , unsigned char *to , int n ) ;
4945 extern void convert_int_to_ascii(unsigned char *from , char *to , int n ) ;   4945 extern void convert_int_to_ascii(unsigned char *from , char *to , int n ) ;
4946 extern void prepare_resume_reply(char *buf , char status , unsigned char sig ) ;   4946 extern void prepare_resume_reply(char *buf , char status , unsigned char sig ) ;
4947 extern void decode_address(CORE_ADDR *addrp , char const   *start , int len ) ;   4947 extern void decode_address(CORE_ADDR *addrp , char const   *start , int len ) ;
4948 extern void decode_m_packet(char *from , CORE_ADDR *mem_addr_ptr ,   4948 extern void decode_m_packet(char *from , CORE_ADDR *mem_addr_ptr ,
4949                             unsigned int *len_ptr ) ;   4949                             unsigned int *len_ptr ) ;
4950 extern void decode_M_packet(char *from , CORE_ADDR *mem_addr_ptr ,   4950 extern void decode_M_packet(char *from , CORE_ADDR *mem_addr_ptr ,
4951                             unsigned int *len_ptr , unsigned char *to ) ;   4951                             unsigned int *len_ptr , unsigned char *to ) ;
4952 extern int decode_X_packet(char *from , int packet_len ,   4952 extern int decode_X_packet(char *from , int packet_len ,
4953                            CORE_ADDR *mem_addr_ptr , unsigned int *len_ptr ,   4953                            CORE_ADDR *mem_addr_ptr , unsigned int *len_ptr ,
4954                            unsigned char *to ) ;   4954                            unsigned char *to ) ;
4955 extern int unhexify(char *bin , char const   *hex , int count ) ;   4955 extern int unhexify(char *bin , char const   *hex , int count ) ;
4956 extern int hexify(char *hex , char const   *bin , int count ) ;   4956 extern int hexify(char *hex , char const   *bin , int count ) ;
4957 extern int remote_escape_output(gdb_byte const   *buffer , int len ,   4957 extern int remote_escape_output(gdb_byte const   *buffer , int len ,
4958                                 gdb_byte *out_buf , int *out_len ,   4958                                 gdb_byte *out_buf , int *out_len ,
4959                                 int out_maxlen ) ;   4959                                 int out_maxlen ) ;
4960 extern enum target_signal target_signal_from_host(int hostsig ) ;   4960 extern enum target_signal target_signal_from_host(int hostsig ) ;
4961 extern int target_signal_to_host_p(enum target_signal oursig ) ;   4961 extern int target_signal_to_host_p(enum target_signal oursig ) ;
4962 extern int target_signal_to_host(enum target_signal oursig ) ;   4962 extern int target_signal_to_host(enum target_signal oursig ) ;
4963 extern char *target_signal_to_name(enum target_signal  ) ;   4963 extern char *target_signal_to_name(enum target_signal  ) ;
4964 extern  __attribute__((__noreturn__)) void ( /* format attribute */  error)(char const   *string   4964 extern  __attribute__((__noreturn__)) void ( /* format attribute */  error)(char const   *string
4965                                                                             , ...) ;   4965                                                                             , ...) ;
4966 extern void ( /* format attribute */  sr_perror)(SysRes sr , char *string  , ...) ;   4966 extern void ( /* format attribute */  sr_perror)(SysRes sr , char *string  , ...) ;
4967 extern  __attribute__((__noreturn__)) void ( /* format attribute */  fatal)(char const   *string   4967 extern  __attribute__((__noreturn__)) void ( /* format attribute */  fatal)(char const   *string
4968                                                                             , ...) ;   4968                                                                             , ...) ;
4969 extern void ( /* format attribute */  warning)(char const   *string  , ...) ;   4969 extern void ( /* format attribute */  warning)(char const   *string  , ...) ;
4970 extern void init_registers(void) ;   4970 extern void init_registers(void) ;
4971 extern char const   version[] ;   4971 extern char const   version[] ;
4972 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr ) ;   4972 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr ) ;
4973 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr ) ;   4973 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr ) ;
4974 static void invalidate_current_ip(ThreadId tid , char *who ) ;   4974 static void invalidate_current_ip(ThreadId tid , char *who ) ;
4975 static char *ppCallReason(CallReason reason )   4975 static char *ppCallReason(CallReason reason )
4976 {   4976 {
4977   long tmp ;   4977   long tmp ;
4978     4978  
4979   {   4979   {
4980   switch ((unsigned int )reason) {   4980   switch ((unsigned int )reason) {
4981   case 0U:   4981   case 0U:
4982   return ((char *)"init_reason");   4982   return ((char *)"init_reason");
4983   case 1U:   4983   case 1U:
4984   return ((char *)"vgdb_reason");   4984   return ((char *)"vgdb_reason");
4985   case 2U:   4985   case 2U:
4986   return ((char *)"core_reason");   4986   return ((char *)"core_reason");
4987   case 3U:   4987   case 3U:
4988   return ((char *)"break_reason");   4988   return ((char *)"break_reason");
4989   case 4U:   4989   case 4U:
4990   return ((char *)"watch_reason");   4990   return ((char *)"watch_reason");
4991   case 5U:   4991   case 5U:
4992   return ((char *)"signal_reason");   4992   return ((char *)"signal_reason");
4993   default:   4993   default:
4994   tmp = __builtin_expect(0L, 1L);   4994   tmp = __builtin_expect(0L, 1L);
4995   if (tmp) {   4995   if (tmp) {
4996     4996  
4997   } else {   4997   } else {
4998     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   4998     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
4999                         (Char const   *)"m_gdbserver/m_gdbserver.c", 81,   4999                         (Char const   *)"m_gdbserver/m_gdbserver.c", 81,
5000                         (Char const   *)"ppCallReason", "");   5000                         (Char const   *)"ppCallReason", "");
5001   }   5001   }
5002   }   5002   }
5003   return ((char *)0);   5003   return ((char *)0);
5004 }   5004 }
5005 }   5005 }
5006 static Addr ignore_this_break_once  =    (Addr )0;   5006 static Addr ignore_this_break_once  =    (Addr )0;
5007 static void call_gdbserver(ThreadId tid , CallReason reason ) ;   5007 static void call_gdbserver(ThreadId tid , CallReason reason ) ;
5008 static void *C2v(CORE_ADDR addr )   5008 static void *C2v(CORE_ADDR addr )
5009 {   5009 {
5010     5010  
5011     5011  
5012   {   5012   {
5013   return ((void *)addr);   5013   return ((void *)addr);
5014 }   5014 }
5015 }   5015 }
5016 static char buf[2][200]  ;   5016 static char buf[2][200]  ;
5017 static char *sym(Addr addr , Bool is_code ) ;   5017 static char *sym(Addr addr , Bool is_code ) ;
5018 static int w  =    0;   5018 static int w  =    0;
5019 static char *sym(Addr addr , Bool is_code )   5019 static char *sym(Addr addr , Bool is_code )
5020 {   5020 {
5021   PtrdiffT offset ;   5021   PtrdiffT offset ;
5022   int tmp ;   5022   int tmp ;
5023     5023  
5024   {   5024   {
5025   if (w == 2) {   5025   if (w == 2) {
5026     w = 0;   5026     w = 0;
5027   } else {   5027   } else {
5028     5028  
5029   }   5029   }
5030   if (is_code) {   5030   if (is_code) {
5031     vgPlain_describe_IP(addr, (Char *)(buf[w]), 200);   5031     vgPlain_describe_IP(addr, (Char *)(buf[w]), 200);
5032   } else {   5032   } else {
5033     vgPlain_get_datasym_and_offset(addr, (Char *)(buf[w]), 200, & offset);   5033     vgPlain_get_datasym_and_offset(addr, (Char *)(buf[w]), 200, & offset);
5034   }   5034   }
5035   tmp = w;   5035   tmp = w;
5036   w ++;   5036   w ++;
5037   return (buf[tmp]);   5037   return (buf[tmp]);
5038 }   5038 }
5039 }   5039 }
5040 static int gdbserver_called  =    0;   5040 static int gdbserver_called  =    0;
5041 static int gdbserver_exited  =    0;   5041 static int gdbserver_exited  =    0;
5042 static VgHashTable gs_addresses  =    (VgHashTable )((void *)0);   5042 static VgHashTable gs_addresses  =    (VgHashTable )((void *)0);
5043 static void add_gs_address(Addr addr , GS_Kind kind , char *from )   5043 static void add_gs_address(Addr addr , GS_Kind kind , char *from )
5044 {   5044 {
5045   GS_Address *p ;   5045   GS_Address *p ;
5046   void *tmp ;   5046   void *tmp ;
5047     5047  
5048   {   5048   {
5049   tmp = vgPlain_arena_malloc(0, from, (SizeT )sizeof(GS_Address ));   5049   tmp = vgPlain_arena_malloc(0, from, (SizeT )sizeof(GS_Address ));
5050   p = (GS_Address *)tmp;   5050   p = (GS_Address *)tmp;
5051   p->addr = addr;   5051   p->addr = addr;
5052   p->kind = kind;   5052   p->kind = kind;
5053   vgPlain_HT_add_node(gs_addresses, (void *)p);   5053   vgPlain_HT_add_node(gs_addresses, (void *)p);
5054   vgPlain_discard_translations((Addr64 )addr, (ULong )1, from);   5054   vgPlain_discard_translations((Addr64 )addr, (ULong )1, from);
5055   return;   5055   return;
5056 }   5056 }
5057 }   5057 }
5058 static void remove_gs_address(GS_Address *g , char *from )   5058 static void remove_gs_address(GS_Address *g , char *from )
5059 {   5059 {
5060     5060  
5061     5061  
5062   {   5062   {
5063   vgPlain_HT_remove(gs_addresses, g->addr);   5063   vgPlain_HT_remove(gs_addresses, g->addr);
5064   vgPlain_discard_translations((Addr64 )g->addr, (ULong )1, from);   5064   vgPlain_discard_translations((Addr64 )g->addr, (ULong )1, from);
5065   vgPlain_arena_free(0, (void *)g);   5065   vgPlain_arena_free(0, (void *)g);
5066   return;   5066   return;
5067 }   5067 }
5068 }   5068 }
5069 char *vgPlain_ppPointKind(PointKind kind )   5069 char *vgPlain_ppPointKind(PointKind kind )
5070 {   5070 {
5071   long tmp ;   5071   long tmp ;
5072     5072  
5073   {   5073   {
5074   switch ((unsigned int )kind) {   5074   switch ((unsigned int )kind) {
5075   case 0U:   5075   case 0U:
5076   return ((char *)"software_breakpoint");   5076   return ((char *)"software_breakpoint");
5077   case 1U:   5077   case 1U:
5078   return ((char *)"hardware_breakpoint");   5078   return ((char *)"hardware_breakpoint");
5079   case 2U:   5079   case 2U:
5080   return ((char *)"write_watchpoint");   5080   return ((char *)"write_watchpoint");
5081   case 3U:   5081   case 3U:
5082   return ((char *)"read_watchpoint");   5082   return ((char *)"read_watchpoint");
5083   case 4U:   5083   case 4U:
5084   return ((char *)"access_watchpoint");   5084   return ((char *)"access_watchpoint");
5085   default:   5085   default:
5086   tmp = __builtin_expect(0L, 1L);   5086   tmp = __builtin_expect(0L, 1L);
5087   if (tmp) {   5087   if (tmp) {
5088     5088  
5089   } else {   5089   } else {
5090     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5090     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5091                         (Char const   *)"m_gdbserver/m_gdbserver.c", 212,   5091                         (Char const   *)"m_gdbserver/m_gdbserver.c", 212,
5092                         (Char const   *)"vgPlain_ppPointKind", "");   5092                         (Char const   *)"vgPlain_ppPointKind", "");
5093   }   5093   }
5094   }   5094   }
5095   return ((char *)0);   5095   return ((char *)0);
5096 }   5096 }
5097 }   5097 }
5098 static VgHashTable gs_watches  =    (VgHashTable )((void *)0);   5098 static VgHashTable gs_watches  =    (VgHashTable )((void *)0);
5099 static void breakpoint(Bool insert , CORE_ADDR addr )   5099 static void breakpoint(Bool insert , CORE_ADDR addr )
5100 {   5100 {
5101   GS_Address *g ;   5101   GS_Address *g ;
5102   void *tmp ;   5102   void *tmp ;
5103   Bool tmp___0 ;   5103   Bool tmp___0 ;
5104   char const   *tmp___1 ;   5104   char const   *tmp___1 ;
5105   char const   *tmp___2 ;   5105   char const   *tmp___2 ;
5106   void *tmp___3 ;   5106   void *tmp___3 ;
5107   Int tmp___4 ;   5107   Int tmp___4 ;
5108   int tmp___5 ;   5108   int tmp___5 ;
5109   long tmp___6 ;   5109   long tmp___6 ;
5110     5110  
5111   {   5111   {
5112   tmp = vgPlain_HT_lookup(gs_addresses, addr);   5112   tmp = vgPlain_HT_lookup(gs_addresses, addr);
5113   g = (GS_Address *)tmp;   5113   g = (GS_Address *)tmp;
5114   if (insert) {   5114   if (insert) {
5115     if ((unsigned int )g == (unsigned int )((void *)0)) {   5115     if ((unsigned int )g == (unsigned int )((void *)0)) {
5116       add_gs_address(addr, (GS_Kind )0, (char *)"m_gdbserver breakpoint insert");   5116       add_gs_address(addr, (GS_Kind )0, (char *)"m_gdbserver breakpoint insert");
5117     } else {   5117     } else {
5118       g->kind = (GS_Kind )0;   5118       g->kind = (GS_Kind )0;
5119     }   5119     }
5120   } else   5120   } else
5121   if ((unsigned int )g != (unsigned int )((void *)0)) {   5121   if ((unsigned int )g != (unsigned int )((void *)0)) {
5122     if ((unsigned int )g->kind == 0U) {   5122     if ((unsigned int )g->kind == 0U) {
5123       tmp___0 = valgrind_single_stepping();   5123       tmp___0 = valgrind_single_stepping();
5124       if (tmp___0) {   5124       if (tmp___0) {
5125         g->kind = (GS_Kind )1;   5125         g->kind = (GS_Kind )1;
5126       } else {   5126       } else {
5127         remove_gs_address(g, (char *)"m_gdbserver breakpoint remove");   5127         remove_gs_address(g, (char *)"m_gdbserver breakpoint remove");
5128       }   5128       }
5129     } else {   5129     } else {
5130       goto _L;   5130       goto _L;
5131     }   5131     }
5132   } else {   5132   } else {
5133     _L: /* CIL Label */   5133     _L: /* CIL Label */
5134     while (1) {   5134     while (1) {
5135       tmp___4 = vgPlain_debugLog_getLevel();   5135       tmp___4 = vgPlain_debugLog_getLevel();
5136       if (tmp___4 >= 1) {   5136       if (tmp___4 >= 1) {
5137         tmp___5 = 1;   5137         tmp___5 = 1;
5138       } else {   5138       } else {
5139         tmp___5 = 0;   5139         tmp___5 = 0;
5140       }   5140       }
5141       tmp___6 = __builtin_expect((long )tmp___5, 0L);   5141       tmp___6 = __builtin_expect((long )tmp___5, 0L);
5142       if (tmp___6) {   5142       if (tmp___6) {
5143         if ((unsigned int )g == (unsigned int )((void *)0)) {   5143         if ((unsigned int )g == (unsigned int )((void *)0)) {
5144           tmp___2 = "NULL";   5144           tmp___2 = "NULL";
5145         } else {   5145         } else {
5146           if ((unsigned int )g->kind == 1U) {   5146           if ((unsigned int )g->kind == 1U) {
5147             tmp___1 = "GS_jump";   5147             tmp___1 = "GS_jump";
5148           } else {   5148           } else {
5149             tmp___1 = "GS_break";   5149             tmp___1 = "GS_break";
5150           }   5150           }
5151           tmp___2 = tmp___1;   5151           tmp___2 = tmp___1;
5152         }   5152         }
5153         tmp___3 = C2v(addr);   5153         tmp___3 = C2v(addr);
5154         vgPlain_debugLog(1, "gdbsrv", "remove break addr %p %s\n", tmp___3,   5154         vgPlain_debugLog(1, "gdbsrv", "remove break addr %p %s\n", tmp___3,
5155                          tmp___2);   5155                          tmp___2);
5156       } else {   5156       } else {
5157     5157  
5158       }   5158       }
5159       break;   5159       break;
5160     }   5160     }
5161   }   5161   }
5162   return;   5162   return;
5163 }   5163 }
5164 }   5164 }
5165 static Bool (*tool_watchpoint)(PointKind kind , Bool insert , Addr addr ,   5165 static Bool (*tool_watchpoint)(PointKind kind , Bool insert , Addr addr ,
5166                                SizeT len )  =    (Bool (*)(PointKind kind , Bool insert , Addr addr , SizeT len ))((void *)0);   5166                                SizeT len )  =    (Bool (*)(PointKind kind , Bool insert , Addr addr , SizeT len ))((void *)0);
5167 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,   5167 void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind , Bool insert ,
5168                                                  Addr addr , SizeT len ) )   5168                                                  Addr addr , SizeT len ) )
5169 {   5169 {
5170     5170  
5171     5171  
5172   {   5172   {
5173   tool_watchpoint = watchpoint;   5173   tool_watchpoint = watchpoint;
5174   return;   5174   return;
5175 }   5175 }
5176 }   5176 }
5177 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len )   5177 Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr , int len )
5178 {   5178 {
5179   Bool res ;   5179   Bool res ;
5180   GS_Watch *g ;   5180   GS_Watch *g ;
5181   Bool is_code ;   5181   Bool is_code ;
5182   int tmp ;   5182   int tmp ;
5183   char *tmp___0 ;   5183   char *tmp___0 ;
5184   void *tmp___1 ;   5184   void *tmp___1 ;
5185   char *tmp___2 ;   5185   char *tmp___2 ;
5186   char const   *tmp___3 ;   5186   char const   *tmp___3 ;
5187   Int tmp___4 ;   5187   Int tmp___4 ;
5188   int tmp___5 ;   5188   int tmp___5 ;
5189   long tmp___6 ;   5189   long tmp___6 ;
5190   int tmp___7 ;   5190   int tmp___7 ;
5191   long tmp___8 ;   5191   long tmp___8 ;
5192   void *tmp___9 ;   5192   void *tmp___9 ;
5193   void *tmp___10 ;   5193   void *tmp___10 ;
5194   long tmp___11 ;   5194   long tmp___11 ;
5195     5195  
5196   {   5196   {
5197   if ((unsigned int )kind == 0U) {   5197   if ((unsigned int )kind == 0U) {
5198     tmp = 1;   5198     tmp = 1;
5199   } else   5199   } else
5200   if ((unsigned int )kind == 1U) {   5200   if ((unsigned int )kind == 1U) {
5201     tmp = 1;   5201     tmp = 1;
5202   } else {   5202   } else {
5203     tmp = 0;   5203     tmp = 0;
5204   }   5204   }
5205   is_code = (Bool )tmp;   5205   is_code = (Bool )tmp;
5206   while (1) {   5206   while (1) {
5207     tmp___4 = vgPlain_debugLog_getLevel();   5207     tmp___4 = vgPlain_debugLog_getLevel();
5208     if (tmp___4 >= 1) {   5208     if (tmp___4 >= 1) {
5209       tmp___5 = 1;   5209       tmp___5 = 1;
5210     } else {   5210     } else {
5211       tmp___5 = 0;   5211       tmp___5 = 0;
5212     }   5212     }
5213     tmp___6 = __builtin_expect((long )tmp___5, 0L);   5213     tmp___6 = __builtin_expect((long )tmp___5, 0L);
5214     if (tmp___6) {   5214     if (tmp___6) {
5215       tmp___0 = sym(addr, is_code);   5215       tmp___0 = sym(addr, is_code);
5216       tmp___1 = C2v(addr);   5216       tmp___1 = C2v(addr);
5217       tmp___2 = vgPlain_ppPointKind(kind);   5217       tmp___2 = vgPlain_ppPointKind(kind);
5218       if (insert) {   5218       if (insert) {
5219         tmp___3 = "insert";   5219         tmp___3 = "insert";
5220       } else {   5220       } else {
5221         tmp___3 = "remove";   5221         tmp___3 = "remove";
5222       }   5222       }
5223       vgPlain_debugLog(1, "gdbsrv", "%s %s at addr %p %s\n", tmp___3, tmp___2,   5223       vgPlain_debugLog(1, "gdbsrv", "%s %s at addr %p %s\n", tmp___3, tmp___2,
5224                        tmp___1, tmp___0);   5224                        tmp___1, tmp___0);
5225     } else {   5225     } else {
5226     5226  
5227     }   5227     }
5228     break;   5228     break;
5229   }   5229   }
5230   if (is_code) {   5230   if (is_code) {
5231     breakpoint(insert, addr);   5231     breakpoint(insert, addr);
5232     return ((Bool )1);   5232     return ((Bool )1);
5233   } else {   5233   } else {
5234     5234  
5235   }   5235   }
5236   if ((unsigned int )kind == 4U) {   5236   if ((unsigned int )kind == 4U) {
5237     tmp___7 = 1;   5237     tmp___7 = 1;
5238   } else   5238   } else
5239   if ((unsigned int )kind == 3U) {   5239   if ((unsigned int )kind == 3U) {
5240     tmp___7 = 1;   5240     tmp___7 = 1;
5241   } else   5241   } else
5242   if ((unsigned int )kind == 2U) {   5242   if ((unsigned int )kind == 2U) {
5243     tmp___7 = 1;   5243     tmp___7 = 1;
5244   } else {   5244   } else {
5245     tmp___7 = 0;   5245     tmp___7 = 0;
5246   }   5246   }
5247   tmp___8 = __builtin_expect((long )tmp___7, 1L);   5247   tmp___8 = __builtin_expect((long )tmp___7, 1L);
5248   if (tmp___8) {   5248   if (tmp___8) {
5249     5249  
5250   } else {   5250   } else {
5251     vgPlain_assert_fail((Bool )1,   5251     vgPlain_assert_fail((Bool )1,
5252                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",   5252                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",
5253                         (Char const   *)"m_gdbserver/m_gdbserver.c", 296,   5253                         (Char const   *)"m_gdbserver/m_gdbserver.c", 296,
5254                         (Char const   *)"vgPlain_gdbserver_point", "");   5254                         (Char const   *)"vgPlain_gdbserver_point", "");
5255   }   5255   }
5256   if ((unsigned int )tool_watchpoint == (unsigned int )((void *)0)) {   5256   if ((unsigned int )tool_watchpoint == (unsigned int )((void *)0)) {
5257     return ((Bool )0);   5257     return ((Bool )0);
5258   } else {   5258   } else {
5259     5259  
5260   }   5260   }
5261   res = (*tool_watchpoint)(kind, insert, addr, (SizeT )len);   5261   res = (*tool_watchpoint)(kind, insert, addr, (SizeT )len);
5262   if (! res) {   5262   if (! res) {
5263     return ((Bool )0);   5263     return ((Bool )0);
5264   } else {   5264   } else {
5265     5265  
5266   }   5266   }
5267   tmp___9 = vgPlain_HT_lookup(gs_watches, addr);   5267   tmp___9 = vgPlain_HT_lookup(gs_watches, addr);
5268   g = (GS_Watch *)tmp___9;   5268   g = (GS_Watch *)tmp___9;
5269   if (insert) {   5269   if (insert) {
5270     if ((unsigned int )g == (unsigned int )((void *)0)) {   5270     if ((unsigned int )g == (unsigned int )((void *)0)) {
5271       tmp___10 = vgPlain_arena_malloc(0, (HChar *)"gdbserver_point watchpoint",   5271       tmp___10 = vgPlain_arena_malloc(0, (HChar *)"gdbserver_point watchpoint",
5272                                       (SizeT )sizeof(GS_Watch ));   5272                                       (SizeT )sizeof(GS_Watch ));
5273       g = (GS_Watch *)tmp___10;   5273       g = (GS_Watch *)tmp___10;
5274       g->addr = addr;   5274       g->addr = addr;
5275       g->len = (SizeT )len;   5275       g->len = (SizeT )len;
5276       g->kind = kind;   5276       g->kind = kind;
5277       vgPlain_HT_add_node(gs_watches, (void *)g);   5277       vgPlain_HT_add_node(gs_watches, (void *)g);
5278     } else {   5278     } else {
5279       g->kind = kind;   5279       g->kind = kind;
5280     }   5280     }
5281   } else {   5281   } else {
5282     tmp___11 = __builtin_expect((long )(! (! ((unsigned int )g != (unsigned int )((void *)0)))),   5282     tmp___11 = __builtin_expect((long )(! (! ((unsigned int )g != (unsigned int )((void *)0)))),
5283                                 1L);   5283                                 1L);
5284     if (tmp___11) {   5284     if (tmp___11) {
5285     5285  
5286     } else {   5286     } else {
5287       vgPlain_assert_fail((Bool )1, (Char const   *)"g != NULL",   5287       vgPlain_assert_fail((Bool )1, (Char const   *)"g != NULL",
5288                           (Char const   *)"m_gdbserver/m_gdbserver.c", 318,   5288                           (Char const   *)"m_gdbserver/m_gdbserver.c", 318,
5289                           (Char const   *)"vgPlain_gdbserver_point", "");   5289                           (Char const   *)"vgPlain_gdbserver_point", "");
5290     }   5290     }
5291     vgPlain_HT_remove(gs_watches, g->addr);   5291     vgPlain_HT_remove(gs_watches, g->addr);
5292     vgPlain_arena_free(0, (void *)g);   5292     vgPlain_arena_free(0, (void *)g);
5293   }   5293   }
5294   return ((Bool )1);   5294   return ((Bool )1);
5295 }   5295 }
5296 }   5296 }
5297 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB )   5297 Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB )
5298 {   5298 {
5299   GS_Watch *g ;   5299   GS_Watch *g ;
5300   Bool watched ;   5300   Bool watched ;
5301   ThreadId tid ;   5301   ThreadId tid ;
5302   Addr to ;   5302   Addr to ;
5303   int tmp ;   5303   int tmp ;
5304   long tmp___0 ;   5304   long tmp___0 ;
5305   void *tmp___1 ;   5305   void *tmp___1 ;
5306   char *tmp___2 ;   5306   char *tmp___2 ;
5307   Int tmp___3 ;   5307   Int tmp___3 ;
5308   int tmp___4 ;   5308   int tmp___4 ;
5309   long tmp___5 ;   5309   long tmp___5 ;
5310   long tmp___6 ;   5310   long tmp___6 ;
5311   void *tmp___7 ;   5311   void *tmp___7 ;
5312     5312  
5313   {   5313   {
5314   watched = (Bool )0;   5314   watched = (Bool )0;
5315   tid = vgPlain_running_tid;   5315   tid = vgPlain_running_tid;
5316   if (! gdbserver_called) {   5316   if (! gdbserver_called) {
5317     return ((Bool )0);   5317     return ((Bool )0);
5318   } else {   5318   } else {
5319     5319  
5320   }   5320   }
5321   to = addr + (Addr )szB;   5321   to = addr + (Addr )szB;
5322   if ((unsigned int )kind == 4U) {   5322   if ((unsigned int )kind == 4U) {
5323     tmp = 1;   5323     tmp = 1;
5324   } else   5324   } else
5325   if ((unsigned int )kind == 3U) {   5325   if ((unsigned int )kind == 3U) {
5326     tmp = 1;   5326     tmp = 1;
5327   } else   5327   } else
5328   if ((unsigned int )kind == 2U) {   5328   if ((unsigned int )kind == 2U) {
5329     tmp = 1;   5329     tmp = 1;
5330   } else {   5330   } else {
5331     tmp = 0;   5331     tmp = 0;
5332   }   5332   }
5333   tmp___0 = __builtin_expect((long )tmp, 1L);   5333   tmp___0 = __builtin_expect((long )tmp, 1L);
5334   if (tmp___0) {   5334   if (tmp___0) {
5335     5335  
5336   } else {   5336   } else {
5337     vgPlain_assert_fail((Bool )1,   5337     vgPlain_assert_fail((Bool )1,
5338                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",   5338                         (Char const   *)"kind == access_watchpoint || kind == read_watchpoint || kind == write_watchpoint",
5339                         (Char const   *)"m_gdbserver/m_gdbserver.c", 338,   5339                         (Char const   *)"m_gdbserver/m_gdbserver.c", 338,
5340                         (Char const   *)"vgPlain_is_watched", "");   5340                         (Char const   *)"vgPlain_is_watched", "");
5341   }   5341   }
5342   while (1) {   5342   while (1) {
5343     tmp___3 = vgPlain_debugLog_getLevel();   5343     tmp___3 = vgPlain_debugLog_getLevel();
5344     if (tmp___3 >= 1) {   5344     if (tmp___3 >= 1) {
5345       tmp___4 = 1;   5345       tmp___4 = 1;
5346     } else {   5346     } else {
5347       tmp___4 = 0;   5347       tmp___4 = 0;
5348     }   5348     }
5349     tmp___5 = __builtin_expect((long )tmp___4, 0L);   5349     tmp___5 = __builtin_expect((long )tmp___4, 0L);
5350     if (tmp___5) {   5350     if (tmp___5) {
5351       tmp___1 = C2v(addr);   5351       tmp___1 = C2v(addr);
5352       tmp___2 = vgPlain_ppPointKind(kind);   5352       tmp___2 = vgPlain_ppPointKind(kind);
5353       vgPlain_debugLog(1, "gdbsrv",   5353       vgPlain_debugLog(1, "gdbsrv",
5354                        "tid %d VG_(is_watched) %s addr %p szB %d\n", tid,   5354                        "tid %d VG_(is_watched) %s addr %p szB %d\n", tid,
5355                        tmp___2, tmp___1, szB);   5355                        tmp___2, tmp___1, szB);
5356     } else {   5356     } else {
5357     5357  
5358     }   5358     }
5359     break;   5359     break;
5360   }   5360   }
5361   vgPlain_HT_ResetIter(gs_watches);   5361   vgPlain_HT_ResetIter(gs_watches);
5362   while (1) {   5362   while (1) {
5363     tmp___7 = vgPlain_HT_Next(gs_watches);   5363     tmp___7 = vgPlain_HT_Next(gs_watches);
5364     g = (GS_Watch *)tmp___7;   5364     g = (GS_Watch *)tmp___7;
5365     if (g) {   5365     if (g) {
5366     5366  
5367     } else {   5367     } else {
5368       break;   5368       break;
5369     }   5369     }
5370     switch ((unsigned int )g->kind) {   5370     switch ((unsigned int )g->kind) {
5371     case 1U:   5371     case 1U:
5372     case 0U:   5372     case 0U:
5373     break;   5373     break;
5374     case 2U:   5374     case 2U:
5375     case 3U:   5375     case 3U:
5376     case 4U:   5376     case 4U:
5377     if (to <= g->addr) {   5377     if (to <= g->addr) {
5378       continue;   5378       continue;
5379     } else   5379     } else
5380     if (addr >= g->addr + g->len) {   5380     if (addr >= g->addr + g->len) {
5381       continue;   5381       continue;
5382     } else {   5382     } else {
5383     5383  
5384     }   5384     }
5385     watched = (Bool )1;   5385     watched = (Bool )1;
5386     if ((unsigned int )kind == 4U) {   5386     if ((unsigned int )kind == 4U) {
5387       goto _L;   5387       goto _L;
5388     } else   5388     } else
5389     if ((unsigned int )g->kind == 4U) {   5389     if ((unsigned int )g->kind == 4U) {
5390       goto _L;   5390       goto _L;
5391     } else   5391     } else
5392     if ((unsigned int )g->kind == (unsigned int )kind) {   5392     if ((unsigned int )g->kind == (unsigned int )kind) {
5393       _L: /* CIL Label */   5393       _L: /* CIL Label */
5394       if (g->addr <= addr) {   5394       if (g->addr <= addr) {
5395         vgPlain_set_watchpoint_stop_address(addr);   5395         vgPlain_set_watchpoint_stop_address(addr);
5396       } else {   5396       } else {
5397         vgPlain_set_watchpoint_stop_address(g->addr);   5397         vgPlain_set_watchpoint_stop_address(g->addr);
5398       }   5398       }
5399       if ((unsigned int )kind == 2U) {   5399       if ((unsigned int )kind == 2U) {
5400         valgrind_set_single_stepping((Bool )1);   5400         valgrind_set_single_stepping((Bool )1);
5401         invalidate_current_ip(tid, (char *)"m_gdbserver write watchpoint");   5401         invalidate_current_ip(tid, (char *)"m_gdbserver write watchpoint");
5402       } else {   5402       } else {
5403         call_gdbserver(tid, (CallReason )4);   5403         call_gdbserver(tid, (CallReason )4);
5404         vgPlain_set_watchpoint_stop_address((Addr )0);   5404         vgPlain_set_watchpoint_stop_address((Addr )0);
5405       }   5405       }
5406       return ((Bool )1);   5406       return ((Bool )1);
5407     } else {   5407     } else {
5408     5408  
5409     }   5409     }
5410     break;   5410     break;
5411     default:   5411     default:
5412     tmp___6 = __builtin_expect(0L, 1L);   5412     tmp___6 = __builtin_expect(0L, 1L);
5413     if (tmp___6) {   5413     if (tmp___6) {
5414     5414  
5415     } else {   5415     } else {
5416       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5416       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5417                           (Char const   *)"m_gdbserver/m_gdbserver.c", 392,   5417                           (Char const   *)"m_gdbserver/m_gdbserver.c", 392,
5418                           (Char const   *)"vgPlain_is_watched", "");   5418                           (Char const   *)"vgPlain_is_watched", "");
5419     }   5419     }
5420     }   5420     }
5421   }   5421   }
5422   return (watched);   5422   return (watched);
5423 }   5423 }
5424 }   5424 }
5425 static VgVgdb vgPlain_gdbserver_instrumentation_needed(VexGuestExtents *vge )   5425 static VgVgdb vgPlain_gdbserver_instrumentation_needed(VexGuestExtents *vge )
5426 {   5426 {
5427   GS_Address *g ;   5427   GS_Address *g ;
5428   int e ;   5428   int e ;
5429   Int tmp ;   5429   Int tmp ;
5430   int tmp___0 ;   5430   int tmp___0 ;
5431   long tmp___1 ;   5431   long tmp___1 ;
5432   Bool tmp___2 ;   5432   Bool tmp___2 ;
5433   Int tmp___3 ;   5433   Int tmp___3 ;
5434   char const   *tmp___4 ;   5434   char const   *tmp___4 ;
5435   char *tmp___5 ;   5435   char *tmp___5 ;
5436   void *tmp___6 ;   5436   void *tmp___6 ;
5437   Int tmp___7 ;   5437   Int tmp___7 ;
5438   int tmp___8 ;   5438   int tmp___8 ;
5439   long tmp___9 ;   5439   long tmp___9 ;
5440   void *tmp___10 ;   5440   void *tmp___10 ;
5441   Int tmp___11 ;   5441   Int tmp___11 ;
5442   int tmp___12 ;   5442   int tmp___12 ;
5443   long tmp___13 ;   5443   long tmp___13 ;
5444     5444  
5445   {   5445   {
5446   if (! gdbserver_called) {   5446   if (! gdbserver_called) {
5447     return ((VgVgdb )0);   5447     return ((VgVgdb )0);
5448   } else {   5448   } else {
5449     5449  
5450   }   5450   }
5451   tmp___2 = valgrind_single_stepping();   5451   tmp___2 = valgrind_single_stepping();
5452   if (tmp___2) {   5452   if (tmp___2) {
5453     while (1) {   5453     while (1) {
5454       tmp = vgPlain_debugLog_getLevel();   5454       tmp = vgPlain_debugLog_getLevel();
5455       if (tmp >= 2) {   5455       if (tmp >= 2) {
5456         tmp___0 = 1;   5456         tmp___0 = 1;
5457       } else {   5457       } else {
5458         tmp___0 = 0;   5458         tmp___0 = 0;
5459       }   5459       }
5460       tmp___1 = __builtin_expect((long )tmp___0, 0L);   5460       tmp___1 = __builtin_expect((long )tmp___0, 0L);
5461       if (tmp___1) {   5461       if (tmp___1) {
5462         vgPlain_debugLog(2, "gdbsrv",   5462         vgPlain_debugLog(2, "gdbsrv",
5463                          "gdbserver_instrumentation_needed due to single stepping\n");   5463                          "gdbserver_instrumentation_needed due to single stepping\n");
5464       } else {   5464       } else {
5465     5465  
5466       }   5466       }
5467       break;   5467       break;
5468     }   5468     }
5469     return ((VgVgdb )1);   5469     return ((VgVgdb )1);
5470   } else {   5470   } else {
5471     5471  
5472   }   5472   }
5473   if ((unsigned int )vgPlain_clo_vgdb == 1U) {   5473   if ((unsigned int )vgPlain_clo_vgdb == 1U) {
5474     tmp___3 = vgPlain_HT_count_nodes(gs_addresses);   5474     tmp___3 = vgPlain_HT_count_nodes(gs_addresses);
5475     if (tmp___3 == 0) {   5475     if (tmp___3 == 0) {
5476       return ((VgVgdb )0);   5476       return ((VgVgdb )0);
5477     } else {   5477     } else {
5478     5478  
5479     }   5479     }
5480   } else {   5480   } else {
5481     5481  
5482   }   5482   }
5483   vgPlain_HT_ResetIter(gs_addresses);   5483   vgPlain_HT_ResetIter(gs_addresses);
5484   while (1) {   5484   while (1) {
5485     tmp___10 = vgPlain_HT_Next(gs_addresses);   5485     tmp___10 = vgPlain_HT_Next(gs_addresses);
5486     g = (GS_Address *)tmp___10;   5486     g = (GS_Address *)tmp___10;
5487     if (g) {   5487     if (g) {
5488     5488  
5489     } else {   5489     } else {
5490       break;   5490       break;
5491     }   5491     }
5492     e = 0;   5492     e = 0;
5493     while (e < (int )vge->n_used) {   5493     while (e < (int )vge->n_used) {
5494       if ((Addr64 )g->addr >= vge->base[e]) {   5494       if ((Addr64 )g->addr >= vge->base[e]) {
5495         if ((Addr64 )g->addr < vge->base[e] + (Addr64 )vge->len[e]) {   5495         if ((Addr64 )g->addr < vge->base[e] + (Addr64 )vge->len[e]) {
5496           while (1) {   5496           while (1) {
5497             tmp___7 = vgPlain_debugLog_getLevel();   5497             tmp___7 = vgPlain_debugLog_getLevel();
5498             if (tmp___7 >= 2) {   5498             if (tmp___7 >= 2) {
5499               tmp___8 = 1;   5499               tmp___8 = 1;
5500             } else {   5500             } else {
5501               tmp___8 = 0;   5501               tmp___8 = 0;
5502             }   5502             }
5503             tmp___9 = __builtin_expect((long )tmp___8, 0L);   5503             tmp___9 = __builtin_expect((long )tmp___8, 0L);
5504             if (tmp___9) {   5504             if (tmp___9) {
5505               if ((unsigned int )g->kind == 1U) {   5505               if ((unsigned int )g->kind == 1U) {
5506                 tmp___4 = "GS_jump";   5506                 tmp___4 = "GS_jump";
5507               } else {   5507               } else {
5508                 tmp___4 = "GS_break";   5508                 tmp___4 = "GS_break";
5509               }   5509               }
5510               tmp___5 = sym(g->addr, (Bool )1);   5510               tmp___5 = sym(g->addr, (Bool )1);
5511               tmp___6 = C2v(g->addr);   5511               tmp___6 = C2v(g->addr);
5512               vgPlain_debugLog(2, "gdbsrv",   5512               vgPlain_debugLog(2, "gdbsrv",
5513                                "gdbserver_instrumentation_needed %p %s reason %s\n",   5513                                "gdbserver_instrumentation_needed %p %s reason %s\n",
5514                                tmp___6, tmp___5, tmp___4);   5514                                tmp___6, tmp___5, tmp___4);
5515             } else {   5515             } else {
5516     5516  
5517             }   5517             }
5518             break;   5518             break;
5519           }   5519           }
5520           return ((VgVgdb )1);   5520           return ((VgVgdb )1);
5521         } else {   5521         } else {
5522     5522  
5523         }   5523         }
5524       } else {   5524       } else {
5525     5525  
5526       }   5526       }
5527       e ++;   5527       e ++;
5528     }   5528     }
5529   }   5529   }
5530   if ((unsigned int )vgPlain_clo_vgdb == 2U) {   5530   if ((unsigned int )vgPlain_clo_vgdb == 2U) {
5531     while (1) {   5531     while (1) {
5532       tmp___11 = vgPlain_debugLog_getLevel();   5532       tmp___11 = vgPlain_debugLog_getLevel();
5533       if (tmp___11 >= 4) {   5533       if (tmp___11 >= 4) {
5534         tmp___12 = 1;   5534         tmp___12 = 1;
5535       } else {   5535       } else {
5536         tmp___12 = 0;   5536         tmp___12 = 0;
5537       }   5537       }
5538       tmp___13 = __builtin_expect((long )tmp___12, 0L);   5538       tmp___13 = __builtin_expect((long )tmp___12, 0L);
5539       if (tmp___13) {   5539       if (tmp___13) {
5540         vgPlain_debugLog(4, "gdbsrv",   5540         vgPlain_debugLog(4, "gdbsrv",
5541                          "gdbserver_instrumentation_needed due to VG_(clo_vgdb) == Vg_VgdbFull\n");   5541                          "gdbserver_instrumentation_needed due to VG_(clo_vgdb) == Vg_VgdbFull\n");
5542       } else {   5542       } else {
5543     5543  
5544       }   5544       }
5545       break;   5545       break;
5546     }   5546     }
5547     return ((VgVgdb )2);   5547     return ((VgVgdb )2);
5548   } else {   5548   } else {
5549     5549  
5550   }   5550   }
5551   return ((VgVgdb )0);   5551   return ((VgVgdb )0);
5552 }   5552 }
5553 }   5553 }
5554 static void clear_gdbserved_addresses(Bool clear_only_jumps )   5554 static void clear_gdbserved_addresses(Bool clear_only_jumps )
5555 {   5555 {
5556   GS_Address **ag ;   5556   GS_Address **ag ;
5557   UInt n_elems ;   5557   UInt n_elems ;
5558   int i ;   5558   int i ;
5559   Int tmp ;   5559   Int tmp ;
5560   Int tmp___0 ;   5560   Int tmp___0 ;
5561   int tmp___1 ;   5561   int tmp___1 ;
5562   long tmp___2 ;   5562   long tmp___2 ;
5563   VgHashNode **tmp___3 ;   5563   VgHashNode **tmp___3 ;
5564     5564  
5565   {   5565   {
5566   while (1) {   5566   while (1) {
5567     tmp___0 = vgPlain_debugLog_getLevel();   5567     tmp___0 = vgPlain_debugLog_getLevel();
5568     if (tmp___0 >= 1) {   5568     if (tmp___0 >= 1) {
5569       tmp___1 = 1;   5569       tmp___1 = 1;
5570     } else {   5570     } else {
5571       tmp___1 = 0;   5571       tmp___1 = 0;
5572     }   5572     }
5573     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5573     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5574     if (tmp___2) {   5574     if (tmp___2) {
5575       tmp = vgPlain_HT_count_nodes(gs_addresses);   5575       tmp = vgPlain_HT_count_nodes(gs_addresses);
5576       vgPlain_debugLog(1, "gdbsrv",   5576       vgPlain_debugLog(1, "gdbsrv",
5577                        "clear_gdbserved_addresses: scanning hash table nodes %d\n",   5577                        "clear_gdbserved_addresses: scanning hash table nodes %d\n",
5578                        tmp);   5578                        tmp);
5579     } else {   5579     } else {
5580     5580  
5581     }   5581     }
5582     break;   5582     break;
5583   }   5583   }
5584   tmp___3 = vgPlain_HT_to_array(gs_addresses, & n_elems);   5584   tmp___3 = vgPlain_HT_to_array(gs_addresses, & n_elems);
5585   ag = (GS_Address **)tmp___3;   5585   ag = (GS_Address **)tmp___3;
5586   i = 0;   5586   i = 0;
5587   while ((UInt )i < n_elems) {   5587   while ((UInt )i < n_elems) {
5588     if (! clear_only_jumps) {   5588     if (! clear_only_jumps) {
5589       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");   5589       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");
5590     } else   5590     } else
5591     if ((unsigned int )(*(ag + i))->kind == 1U) {   5591     if ((unsigned int )(*(ag + i))->kind == 1U) {
5592       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");   5592       remove_gs_address(*(ag + i), (char *)"clear_gdbserved_addresses");
5593     } else {   5593     } else {
5594     5594  
5595     }   5595     }
5596     i ++;   5596     i ++;
5597   }   5597   }
5598   vgPlain_free((void *)ag);   5598   vgPlain_free((void *)ag);
5599   return;   5599   return;
5600 }   5600 }
5601 }   5601 }
5602 static void clear_watched_addresses(void)   5602 static void clear_watched_addresses(void)
5603 {   5603 {
5604   GS_Watch **ag ;   5604   GS_Watch **ag ;
5605   UInt n_elems ;   5605   UInt n_elems ;
5606   int i ;   5606   int i ;
5607   Int tmp ;   5607   Int tmp ;
5608   Int tmp___0 ;   5608   Int tmp___0 ;
5609   int tmp___1 ;   5609   int tmp___1 ;
5610   long tmp___2 ;   5610   long tmp___2 ;
5611   VgHashNode **tmp___3 ;   5611   VgHashNode **tmp___3 ;
5612   long tmp___4 ;   5612   long tmp___4 ;
5613   Bool tmp___5 ;   5613   Bool tmp___5 ;
5614     5614  
5615   {   5615   {
5616   while (1) {   5616   while (1) {
5617     tmp___0 = vgPlain_debugLog_getLevel();   5617     tmp___0 = vgPlain_debugLog_getLevel();
5618     if (tmp___0 >= 1) {   5618     if (tmp___0 >= 1) {
5619       tmp___1 = 1;   5619       tmp___1 = 1;
5620     } else {   5620     } else {
5621       tmp___1 = 0;   5621       tmp___1 = 0;
5622     }   5622     }
5623     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5623     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5624     if (tmp___2) {   5624     if (tmp___2) {
5625       tmp = vgPlain_HT_count_nodes(gs_watches);   5625       tmp = vgPlain_HT_count_nodes(gs_watches);
5626       vgPlain_debugLog(1, "gdbsrv",   5626       vgPlain_debugLog(1, "gdbsrv",
5627                        "clear_watched_addresses: scanning hash table nodes %d\n",   5627                        "clear_watched_addresses: scanning hash table nodes %d\n",
5628                        tmp);   5628                        tmp);
5629     } else {   5629     } else {
5630     5630  
5631     }   5631     }
5632     break;   5632     break;
5633   }   5633   }
5634   tmp___3 = vgPlain_HT_to_array(gs_watches, & n_elems);   5634   tmp___3 = vgPlain_HT_to_array(gs_watches, & n_elems);
5635   ag = (GS_Watch **)tmp___3;   5635   ag = (GS_Watch **)tmp___3;
5636   i = 0;   5636   i = 0;
5637   while ((UInt )i < n_elems) {   5637   while ((UInt )i < n_elems) {
5638     tmp___5 = vgPlain_gdbserver_point((*(ag + i))->kind, (Bool )0,   5638     tmp___5 = vgPlain_gdbserver_point((*(ag + i))->kind, (Bool )0,
5639                                       (*(ag + i))->addr, (int )(*(ag + i))->len);   5639                                       (*(ag + i))->addr, (int )(*(ag + i))->len);
5640     if (tmp___5) {   5640     if (tmp___5) {
5641     5641  
5642     } else {   5642     } else {
5643       tmp___4 = __builtin_expect(0L, 1L);   5643       tmp___4 = __builtin_expect(0L, 1L);
5644       if (tmp___4) {   5644       if (tmp___4) {
5645     5645  
5646       } else {   5646       } else {
5647         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   5647         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
5648                             (Char const   *)"m_gdbserver/m_gdbserver.c", 479,   5648                             (Char const   *)"m_gdbserver/m_gdbserver.c", 479,
5649                             (Char const   *)"clear_watched_addresses", "");   5649                             (Char const   *)"clear_watched_addresses", "");
5650       }   5650       }
5651     }   5651     }
5652     i ++;   5652     i ++;
5653   }   5653   }
5654   vgPlain_free((void *)ag);   5654   vgPlain_free((void *)ag);
5655   return;   5655   return;
5656 }   5656 }
5657 }   5657 }
5658 static void invalidate_if_jump_not_yet_gdbserved(Addr addr , char *from )   5658 static void invalidate_if_jump_not_yet_gdbserved(Addr addr , char *from )
5659 {   5659 {
5660   void *tmp ;   5660   void *tmp ;
5661     5661  
5662   {   5662   {
5663   tmp = vgPlain_HT_lookup(gs_addresses, addr);   5663   tmp = vgPlain_HT_lookup(gs_addresses, addr);
5664   if (tmp) {   5664   if (tmp) {
5665     return;   5665     return;
5666   } else {   5666   } else {
5667     5667  
5668   }   5668   }
5669   add_gs_address(addr, (GS_Kind )1, from);   5669   add_gs_address(addr, (GS_Kind )1, from);
5670   return;   5670   return;
5671 }   5671 }
5672 }   5672 }
5673 static void invalidate_current_ip(ThreadId tid , char *who )   5673 static void invalidate_current_ip(ThreadId tid , char *who )
5674 {   5674 {
5675   Addr tmp ;   5675   Addr tmp ;
5676     5676  
5677   {   5677   {
5678   tmp = vgPlain_get_IP(tid);   5678   tmp = vgPlain_get_IP(tid);
5679   invalidate_if_jump_not_yet_gdbserved(tmp, who);   5679   invalidate_if_jump_not_yet_gdbserved(tmp, who);
5680   return;   5680   return;
5681 }   5681 }
5682 }   5682 }
5683 void vgPlain_gdbserver_prerun_action(ThreadId tid )   5683 void vgPlain_gdbserver_prerun_action(ThreadId tid )
5684 {   5684 {
5685   Bool tmp ;   5685   Bool tmp ;
5686     5686  
5687   {   5687   {
5688   if (vgPlain_dyn_vgdb_error == 0) {   5688   if (vgPlain_dyn_vgdb_error == 0) {
5689     vgPlain_umsg("(action at startup) vgdb me ... \n");   5689     vgPlain_umsg("(action at startup) vgdb me ... \n");
5690     vgPlain_gdbserver(tid);   5690     vgPlain_gdbserver(tid);
5691   } else {   5691   } else {
5692     tmp = vgPlain_gdbserver_activity(tid);   5692     tmp = vgPlain_gdbserver_activity(tid);
5693     if (tmp) {   5693     if (tmp) {
5694       vgPlain_gdbserver(tid);   5694       vgPlain_gdbserver(tid);
5695     } else {   5695     } else {
5696     5696  
5697     }   5697     }
5698   }   5698   }
5699   return;   5699   return;
5700 }   5700 }
5701 }   5701 }
5702 static void gdbserver_cleanup_in_child_after_fork(ThreadId me )   5702 static void gdbserver_cleanup_in_child_after_fork(ThreadId me )
5703 {   5703 {
5704   Int tmp ;   5704   Int tmp ;
5705   Int tmp___0 ;   5705   Int tmp___0 ;
5706   int tmp___1 ;   5706   int tmp___1 ;
5707   long tmp___2 ;   5707   long tmp___2 ;
5708   long tmp___3 ;   5708   long tmp___3 ;
5709   long tmp___4 ;   5709   long tmp___4 ;
5710   long tmp___5 ;   5710   long tmp___5 ;
5711   long tmp___6 ;   5711   long tmp___6 ;
5712     5712  
5713   {   5713   {
5714   while (1) {   5714   while (1) {
5715     tmp___0 = vgPlain_debugLog_getLevel();   5715     tmp___0 = vgPlain_debugLog_getLevel();
5716     if (tmp___0 >= 1) {   5716     if (tmp___0 >= 1) {
5717       tmp___1 = 1;   5717       tmp___1 = 1;
5718     } else {   5718     } else {
5719       tmp___1 = 0;   5719       tmp___1 = 0;
5720     }   5720     }
5721     tmp___2 = __builtin_expect((long )tmp___1, 0L);   5721     tmp___2 = __builtin_expect((long )tmp___1, 0L);
5722     if (tmp___2) {   5722     if (tmp___2) {
5723       tmp = vgPlain_getpid();   5723       tmp = vgPlain_getpid();
5724       vgPlain_debugLog(1, "gdbsrv",   5724       vgPlain_debugLog(1, "gdbsrv",
5725                        "thread %d gdbserver_cleanup_in_child_after_fork pid %d\n",   5725                        "thread %d gdbserver_cleanup_in_child_after_fork pid %d\n",
5726                        me, tmp);   5726                        me, tmp);
5727     } else {   5727     } else {
5728     5728  
5729     }   5729     }
5730     break;   5730     break;
5731   }   5731   }
5732   remote_finish((FinishReason )2);   5732   remote_finish((FinishReason )2);
5733   if (gdbserver_called) {   5733   if (gdbserver_called) {
5734     gdbserver_called = 0;   5734     gdbserver_called = 0;
5735     tmp___3 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),   5735     tmp___3 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),
5736                                1L);   5736                                1L);
5737     if (tmp___3) {   5737     if (tmp___3) {
5738     5738  
5739     } else {   5739     } else {
5740       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",   5740       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",
5741                           (Char const   *)"m_gdbserver/m_gdbserver.c", 530,   5741                           (Char const   *)"m_gdbserver/m_gdbserver.c", 530,
5742                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5742                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5743                           "");   5743                           "");
5744     }   5744     }
5745     tmp___4 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),   5745     tmp___4 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),
5746                                1L);   5746                                1L);
5747     if (tmp___4) {   5747     if (tmp___4) {
5748     5748  
5749     } else {   5749     } else {
5750       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",   5750       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",
5751                           (Char const   *)"m_gdbserver/m_gdbserver.c", 531,   5751                           (Char const   *)"m_gdbserver/m_gdbserver.c", 531,
5752                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5752                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5753                           "");   5753                           "");
5754     }   5754     }
5755     clear_gdbserved_addresses((Bool )0);   5755     clear_gdbserved_addresses((Bool )0);
5756     vgPlain_HT_destruct(gs_addresses);   5756     vgPlain_HT_destruct(gs_addresses);
5757     gs_addresses = (VgHashTable )((void *)0);   5757     gs_addresses = (VgHashTable )((void *)0);
5758     clear_watched_addresses();   5758     clear_watched_addresses();
5759     vgPlain_HT_destruct(gs_watches);   5759     vgPlain_HT_destruct(gs_watches);
5760     gs_watches = (VgHashTable )((void *)0);   5760     gs_watches = (VgHashTable )((void *)0);
5761   } else {   5761   } else {
5762     tmp___5 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),   5762     tmp___5 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),
5763                                1L);   5763                                1L);
5764     if (tmp___5) {   5764     if (tmp___5) {
5765     5765  
5766     } else {   5766     } else {
5767       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",   5767       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",
5768                           (Char const   *)"m_gdbserver/m_gdbserver.c", 539,   5768                           (Char const   *)"m_gdbserver/m_gdbserver.c", 539,
5769                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5769                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5770                           "");   5770                           "");
5771     }   5771     }
5772     tmp___6 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),   5772     tmp___6 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),
5773                                1L);   5773                                1L);
5774     if (tmp___6) {   5774     if (tmp___6) {
5775     5775  
5776     } else {   5776     } else {
5777       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",   5777       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",
5778                           (Char const   *)"m_gdbserver/m_gdbserver.c", 540,   5778                           (Char const   *)"m_gdbserver/m_gdbserver.c", 540,
5779                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",   5779                           (Char const   *)"gdbserver_cleanup_in_child_after_fork",
5780                           "");   5780                           "");
5781     }   5781     }
5782   }   5782   }
5783   if (vgPlain_clo_trace_children) {   5783   if (vgPlain_clo_trace_children) {
5784     vgPlain_gdbserver_prerun_action(me);   5784     vgPlain_gdbserver_prerun_action(me);
5785   } else {   5785   } else {
5786     5786  
5787   }   5787   }
5788   return;   5788   return;
5789 }   5789 }
5790 }   5790 }
5791 static void call_gdbserver(ThreadId tid , CallReason reason )   5791 static void call_gdbserver(ThreadId tid , CallReason reason )
5792 {   5792 {
5793   ThreadState *tst ;   5793   ThreadState *tst ;
5794   ThreadState *tmp ;   5794   ThreadState *tmp ;
5795   int stepping ;   5795   int stepping ;
5796   Addr saved_pc ;   5796   Addr saved_pc ;
5797   HChar const   *tmp___0 ;   5797   HChar const   *tmp___0 ;
5798   Int tmp___1 ;   5798   Int tmp___1 ;
5799   char *tmp___2 ;   5799   char *tmp___2 ;
5800   Int tmp___3 ;   5800   Int tmp___3 ;
5801   int tmp___4 ;   5801   int tmp___4 ;
5802   long tmp___5 ;   5802   long tmp___5 ;
5803   Bool tmp___6 ;   5803   Bool tmp___6 ;
5804   int tmp___7 ;   5804   int tmp___7 ;
5805   long tmp___8 ;   5805   long tmp___8 ;
5806   Int tmp___9 ;   5806   Int tmp___9 ;
5807   int tmp___10 ;   5807   int tmp___10 ;
5808   long tmp___11 ;   5808   long tmp___11 ;
5809   long tmp___12 ;   5809   long tmp___12 ;
5810   long tmp___13 ;   5810   long tmp___13 ;
5811   long tmp___14 ;   5811   long tmp___14 ;
5812   long tmp___15 ;   5812   long tmp___15 ;
5813   Bool tmp___16 ;   5813   Bool tmp___16 ;
5814   char *tmp___17 ;   5814   char *tmp___17 ;
5815   Int tmp___18 ;   5815   Int tmp___18 ;
5816   int tmp___19 ;   5816   int tmp___19 ;
5817   long tmp___20 ;   5817   long tmp___20 ;
5818   Bool tmp___21 ;   5818   Bool tmp___21 ;
5819   Addr tmp___22 ;   5819   Addr tmp___22 ;
5820   char *tmp___23 ;   5820   char *tmp___23 ;
5821   char *tmp___24 ;   5821   char *tmp___24 ;
5822   HChar const   *tmp___25 ;   5822   HChar const   *tmp___25 ;
5823   Int tmp___26 ;   5823   Int tmp___26 ;
5824   int tmp___27 ;   5824   int tmp___27 ;
5825   long tmp___28 ;   5825   long tmp___28 ;
5826   SysRes sres ;   5826   SysRes sres ;
5827   Addr tmp___29 ;   5827   Addr tmp___29 ;
5828     5828  
5829   {   5829   {
5830   tmp = vgPlain_get_ThreadState(tid);   5830   tmp = vgPlain_get_ThreadState(tid);
5831   tst = tmp;   5831   tst = tmp;
5832   while (1) {   5832   while (1) {
5833     tmp___3 = vgPlain_debugLog_getLevel();   5833     tmp___3 = vgPlain_debugLog_getLevel();
5834     if (tmp___3 >= 1) {   5834     if (tmp___3 >= 1) {
5835       tmp___4 = 1;   5835       tmp___4 = 1;
5836     } else {   5836     } else {
5837       tmp___4 = 0;   5837       tmp___4 = 0;
5838     }   5838     }
5839     tmp___5 = __builtin_expect((long )tmp___4, 0L);   5839     tmp___5 = __builtin_expect((long )tmp___4, 0L);
5840     if (tmp___5) {   5840     if (tmp___5) {
5841       tmp___0 = vgPlain_name_of_ThreadStatus(tst->status);   5841       tmp___0 = vgPlain_name_of_ThreadStatus(tst->status);
5842       tmp___1 = vgPlain_getpid();   5842       tmp___1 = vgPlain_getpid();
5843       tmp___2 = ppCallReason(reason);   5843       tmp___2 = ppCallReason(reason);
5844       vgPlain_debugLog(1, "gdbsrv",   5844       vgPlain_debugLog(1, "gdbsrv",
5845                        "entering call_gdbserver %s ... pid %d tid %d status %s sched_jmpbuf_valid %d\n",   5845                        "entering call_gdbserver %s ... pid %d tid %d status %s sched_jmpbuf_valid %d\n",
5846                        tmp___2, tmp___1, tid, tmp___0,   5846                        tmp___2, tmp___1, tid, tmp___0,
5847                        (int )tst->sched_jmpbuf_valid);   5847                        (int )tst->sched_jmpbuf_valid);
5848     } else {   5848     } else {
5849     5849  
5850     }   5850     }
5851     break;   5851     break;
5852   }   5852   }
5853   tmp___6 = vgPlain_is_valid_tid(tid);   5853   tmp___6 = vgPlain_is_valid_tid(tid);
5854   if (tmp___6) {   5854   if (tmp___6) {
5855     tmp___7 = 1;   5855     tmp___7 = 1;
5856   } else {   5856   } else {
5857     tmp___7 = 0;   5857     tmp___7 = 0;
5858   }   5858   }
5859   tmp___8 = __builtin_expect((long )tmp___7, 1L);   5859   tmp___8 = __builtin_expect((long )tmp___7, 1L);
5860   if (tmp___8) {   5860   if (tmp___8) {
5861     5861  
5862   } else {   5862   } else {
5863     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5863     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5864                         (Char const   *)"m_gdbserver/m_gdbserver.c", 569,   5864                         (Char const   *)"m_gdbserver/m_gdbserver.c", 569,
5865                         (Char const   *)"call_gdbserver", "");   5865                         (Char const   *)"call_gdbserver", "");
5866   }   5866   }
5867   saved_pc = vgPlain_get_IP(tid);   5867   saved_pc = vgPlain_get_IP(tid);
5868   if (gdbserver_exited) {   5868   if (gdbserver_exited) {
5869     while (1) {   5869     while (1) {
5870       tmp___9 = vgPlain_debugLog_getLevel();   5870       tmp___9 = vgPlain_debugLog_getLevel();
5871       if (tmp___9 >= 0) {   5871       if (tmp___9 >= 0) {
5872         tmp___10 = 1;   5872         tmp___10 = 1;
5873       } else {   5873       } else {
5874         tmp___10 = 0;   5874         tmp___10 = 0;
5875       }   5875       }
5876       tmp___11 = __builtin_expect((long )tmp___10, 0L);   5876       tmp___11 = __builtin_expect((long )tmp___10, 0L);
5877       if (tmp___11) {   5877       if (tmp___11) {
5878         vgPlain_debugLog(0, "gdbsrv",   5878         vgPlain_debugLog(0, "gdbsrv",
5879                          "call_gdbserver called when gdbserver_exited %d\n",   5879                          "call_gdbserver called when gdbserver_exited %d\n",
5880                          gdbserver_exited);   5880                          gdbserver_exited);
5881       } else {   5881       } else {
5882     5882  
5883       }   5883       }
5884       break;   5884       break;
5885     }   5885     }
5886     return;   5886     return;
5887   } else {   5887   } else {
5888     5888  
5889   }   5889   }
5890   if (gdbserver_called == 0) {   5890   if (gdbserver_called == 0) {
5891     tmp___12 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),   5891     tmp___12 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses == (unsigned int )((void *)0)))),
5892                                 1L);   5892                                 1L);
5893     if (tmp___12) {   5893     if (tmp___12) {
5894     5894  
5895     } else {   5895     } else {
5896       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",   5896       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses == NULL",
5897                           (Char const   *)"m_gdbserver/m_gdbserver.c", 579,   5897                           (Char const   *)"m_gdbserver/m_gdbserver.c", 579,
5898                           (Char const   *)"call_gdbserver", "");   5898                           (Char const   *)"call_gdbserver", "");
5899     }   5899     }
5900     tmp___13 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),   5900     tmp___13 = __builtin_expect((long )(! (! ((unsigned int )gs_watches == (unsigned int )((void *)0)))),
5901                                 1L);   5901                                 1L);
5902     if (tmp___13) {   5902     if (tmp___13) {
5903     5903  
5904     } else {   5904     } else {
5905       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",   5905       vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches == NULL",
5906                           (Char const   *)"m_gdbserver/m_gdbserver.c", 580,   5906                           (Char const   *)"m_gdbserver/m_gdbserver.c", 580,
5907                           (Char const   *)"call_gdbserver", "");   5907                           (Char const   *)"call_gdbserver", "");
5908     }   5908     }
5909     gs_addresses = vgPlain_HT_construct((HChar *)"gdbserved_addresses");   5909     gs_addresses = vgPlain_HT_construct((HChar *)"gdbserved_addresses");
5910     gs_watches = vgPlain_HT_construct((HChar *)"gdbserved_watches");   5910     gs_watches = vgPlain_HT_construct((HChar *)"gdbserved_watches");
5911     vgPlain_atfork((void (*)(ThreadId  ))((void *)0),   5911     vgPlain_atfork((void (*)(ThreadId  ))((void *)0),
5912                    (void (*)(ThreadId  ))((void *)0),   5912                    (void (*)(ThreadId  ))((void *)0),
5913                    & gdbserver_cleanup_in_child_after_fork);   5913                    & gdbserver_cleanup_in_child_after_fork);
5914   } else {   5914   } else {
5915     5915  
5916   }   5916   }
5917   tmp___14 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),   5917   tmp___14 = __builtin_expect((long )(! (! ((unsigned int )gs_addresses != (unsigned int )((void *)0)))),
5918                               1L);   5918                               1L);
5919   if (tmp___14) {   5919   if (tmp___14) {
5920     5920  
5921   } else {   5921   } else {
5922     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",   5922     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_addresses != NULL",
5923                         (Char const   *)"m_gdbserver/m_gdbserver.c", 585,   5923                         (Char const   *)"m_gdbserver/m_gdbserver.c", 585,
5924                         (Char const   *)"call_gdbserver", "");   5924                         (Char const   *)"call_gdbserver", "");
5925   }   5925   }
5926   tmp___15 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),   5926   tmp___15 = __builtin_expect((long )(! (! ((unsigned int )gs_watches != (unsigned int )((void *)0)))),
5927                               1L);   5927                               1L);
5928   if (tmp___15) {   5928   if (tmp___15) {
5929     5929  
5930   } else {   5930   } else {
5931     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",   5931     vgPlain_assert_fail((Bool )1, (Char const   *)"gs_watches != NULL",
5932                         (Char const   *)"m_gdbserver/m_gdbserver.c", 586,   5932                         (Char const   *)"m_gdbserver/m_gdbserver.c", 586,
5933                         (Char const   *)"call_gdbserver", "");   5933                         (Char const   *)"call_gdbserver", "");
5934   }   5934   }
5935   gdbserver_called ++;   5935   gdbserver_called ++;
5936   if (gdbserver_called == 1) {   5936   if (gdbserver_called == 1) {
5937     gdbserver_init();   5937     gdbserver_init();
5938   } else {   5938   } else {
5939     5939  
5940   }   5940   }
5941   if ((unsigned int )reason == 0U) {   5941   if ((unsigned int )reason == 0U) {
5942     remote_open((char *)vgPlain_clo_vgdb_prefix);   5942     remote_open((char *)vgPlain_clo_vgdb_prefix);
5943   } else   5943   } else
5944   if (gdbserver_called == 1) {   5944   if (gdbserver_called == 1) {
5945     remote_open((char *)vgPlain_clo_vgdb_prefix);   5945     remote_open((char *)vgPlain_clo_vgdb_prefix);
5946   } else {   5946   } else {
5947     5947  
5948   }   5948   }
5949   if ((unsigned int )reason == 0U) {   5949   if ((unsigned int )reason == 0U) {
5950     return;   5950     return;
5951   } else {   5951   } else {
5952     5952  
5953   }   5953   }
5954   tmp___16 = valgrind_single_stepping();   5954   tmp___16 = valgrind_single_stepping();
5955   stepping = (int )tmp___16;   5955   stepping = (int )tmp___16;
5956   server_main();   5956   server_main();
5957   ignore_this_break_once = valgrind_get_ignore_break_once();   5957   ignore_this_break_once = valgrind_get_ignore_break_once();
5958   if (ignore_this_break_once) {   5958   if (ignore_this_break_once) {
5959     while (1) {   5959     while (1) {
5960       tmp___18 = vgPlain_debugLog_getLevel();   5960       tmp___18 = vgPlain_debugLog_getLevel();
5961       if (tmp___18 >= 1) {   5961       if (tmp___18 >= 1) {
5962         tmp___19 = 1;   5962         tmp___19 = 1;
5963       } else {   5963       } else {
5964         tmp___19 = 0;   5964         tmp___19 = 0;
5965       }   5965       }
5966       tmp___20 = __builtin_expect((long )tmp___19, 0L);   5966       tmp___20 = __builtin_expect((long )tmp___19, 0L);
5967       if (tmp___20) {   5967       if (tmp___20) {
5968         tmp___17 = sym(ignore_this_break_once, (Bool )1);   5968         tmp___17 = sym(ignore_this_break_once, (Bool )1);
5969         vgPlain_debugLog(1, "gdbsrv", "!!! will ignore_this_break_once %s\n",   5969         vgPlain_debugLog(1, "gdbsrv", "!!! will ignore_this_break_once %s\n",
5970                          tmp___17);   5970                          tmp___17);
5971       } else {   5971       } else {
5972     5972  
5973       }   5973       }
5974       break;   5974       break;
5975     }   5975     }
5976   } else {   5976   } else {
5977     5977  
5978   }   5978   }
5979   tmp___21 = valgrind_single_stepping();   5979   tmp___21 = valgrind_single_stepping();
5980   if (tmp___21) {   5980   if (tmp___21) {
5981     if (! stepping) {   5981     if (! stepping) {
5982       if (tid != 0U) {   5982       if (tid != 0U) {
5983         invalidate_current_ip(tid, (char *)"m_gdbserver single step");   5983         invalidate_current_ip(tid, (char *)"m_gdbserver single step");
5984       } else {   5984       } else {
5985     5985  
5986       }   5986       }
5987     } else {   5987     } else {
5988     5988  
5989     }   5989     }
5990   } else   5990   } else
5991   if (stepping) {   5991   if (stepping) {
5992     clear_gdbserved_addresses((Bool )1);   5992     clear_gdbserved_addresses((Bool )1);
5993   } else {   5993   } else {
5994     5994  
5995   }   5995   }
5996   if (gdbserver_called > 1) {   5996   if (gdbserver_called > 1) {
5997     vgPlain_sanity_check_general((Bool )0);   5997     vgPlain_sanity_check_general((Bool )0);
5998   } else {   5998   } else {
5999     5999  
6000   }   6000   }
6001   tmp___29 = vgPlain_get_IP(tid);   6001   tmp___29 = vgPlain_get_IP(tid);
6002   if (tmp___29 != saved_pc) {   6002   if (tmp___29 != saved_pc) {
6003     while (1) {   6003     while (1) {
6004       tmp___26 = vgPlain_debugLog_getLevel();   6004       tmp___26 = vgPlain_debugLog_getLevel();
6005       if (tmp___26 >= 1) {   6005       if (tmp___26 >= 1) {
6006         tmp___27 = 1;   6006         tmp___27 = 1;
6007       } else {   6007       } else {
6008         tmp___27 = 0;   6008         tmp___27 = 0;
6009       }   6009       }
6010       tmp___28 = __builtin_expect((long )tmp___27, 0L);   6010       tmp___28 = __builtin_expect((long )tmp___27, 0L);
6011       if (tmp___28) {   6011       if (tmp___28) {
6012         tmp___22 = vgPlain_get_IP(tid);   6012         tmp___22 = vgPlain_get_IP(tid);
6013         tmp___23 = sym(tmp___22, (Bool )1);   6013         tmp___23 = sym(tmp___22, (Bool )1);
6014         tmp___24 = sym(saved_pc, (Bool )1);   6014         tmp___24 = sym(saved_pc, (Bool )1);
6015         tmp___25 = vgPlain_name_of_ThreadStatus(tst->status);   6015         tmp___25 = vgPlain_name_of_ThreadStatus(tst->status);
6016         vgPlain_debugLog(1, "gdbsrv", "tid %d %s PC changed from %s to %s\n",   6016         vgPlain_debugLog(1, "gdbsrv", "tid %d %s PC changed from %s to %s\n",
6017                          tid, tmp___25, tmp___24, tmp___23);   6017                          tid, tmp___25, tmp___24, tmp___23);
6018       } else {   6018       } else {
6019     6019  
6020       }   6020       }
6021       break;   6021       break;
6022     }   6022     }
6023     if ((unsigned int )tst->status == 4U) {   6023     if ((unsigned int )tst->status == 4U) {
6024       vgPlain_memset((void *)(& sres), 0, (SizeT )sizeof(SysRes ));   6024       vgPlain_memset((void *)(& sres), 0, (SizeT )sizeof(SysRes ));
6025       vgPlain_acquire_BigLock(tid, (HChar *)"gdbsrv VG_MINIMAL_LONGJMP");   6025       vgPlain_acquire_BigLock(tid, (HChar *)"gdbsrv VG_MINIMAL_LONGJMP");
6026     } else {   6026     } else {
6027     6027  
6028     }   6028     }
6029     if (tst->sched_jmpbuf_valid) {   6029     if (tst->sched_jmpbuf_valid) {
6030       __builtin_longjmp(tst->sched_jmpbuf, 1);   6030       __builtin_longjmp(tst->sched_jmpbuf, 1);
6031     } else {   6031     } else {
6032     6032  
6033     }   6033     }
6034   } else {   6034   } else {
6035     6035  
6036   }   6036   }
6037   return;   6037   return;
6038 }   6038 }
6039 }   6039 }
6040 static int volatile   busy  =    (int volatile   )0;   6040 static int volatile   busy  =    (int volatile   )0;
6041 void vgPlain_gdbserver(ThreadId tid )   6041 void vgPlain_gdbserver(ThreadId tid )
6042 {   6042 {
6043   Int tmp ;   6043   Int tmp ;
6044   int tmp___0 ;   6044   int tmp___0 ;
6045   long tmp___1 ;   6045   long tmp___1 ;
6046   Int tmp___2 ;   6046   Int tmp___2 ;
6047   int tmp___3 ;   6047   int tmp___3 ;
6048   long tmp___4 ;   6048   long tmp___4 ;
6049     6049  
6050   {   6050   {
6051   busy += (int volatile   )1;   6051   busy += (int volatile   )1;
6052   if (tid != 0U) {   6052   if (tid != 0U) {
6053     call_gdbserver(tid, (CallReason )2);   6053     call_gdbserver(tid, (CallReason )2);
6054   } else   6054   } else
6055   if (gdbserver_called == 0) {   6055   if (gdbserver_called == 0) {
6056     while (1) {   6056     while (1) {
6057       tmp = vgPlain_debugLog_getLevel();   6057       tmp = vgPlain_debugLog_getLevel();
6058       if (tmp >= 1) {   6058       if (tmp >= 1) {
6059         tmp___0 = 1;   6059         tmp___0 = 1;
6060       } else {   6060       } else {
6061         tmp___0 = 0;   6061         tmp___0 = 0;
6062       }   6062       }
6063       tmp___1 = __builtin_expect((long )tmp___0, 0L);   6063       tmp___1 = __builtin_expect((long )tmp___0, 0L);
6064       if (tmp___1) {   6064       if (tmp___1) {
6065         vgPlain_debugLog(1, "gdbsrv",   6065         vgPlain_debugLog(1, "gdbsrv",
6066                          "VG_(gdbserver) called to terminate, nothing to terminate\n");   6066                          "VG_(gdbserver) called to terminate, nothing to terminate\n");
6067       } else {   6067       } else {
6068     6068  
6069       }   6069       }
6070       break;   6070       break;
6071     }   6071     }
6072   } else   6072   } else
6073   if (gdbserver_exited) {   6073   if (gdbserver_exited) {
6074     while (1) {   6074     while (1) {
6075       tmp___2 = vgPlain_debugLog_getLevel();   6075       tmp___2 = vgPlain_debugLog_getLevel();
6076       if (tmp___2 >= 0) {   6076       if (tmp___2 >= 0) {
6077         tmp___3 = 1;   6077         tmp___3 = 1;
6078       } else {   6078       } else {
6079         tmp___3 = 0;   6079         tmp___3 = 0;
6080       }   6080       }
6081       tmp___4 = __builtin_expect((long )tmp___3, 0L);   6081       tmp___4 = __builtin_expect((long )tmp___3, 0L);
6082       if (tmp___4) {   6082       if (tmp___4) {
6083         vgPlain_debugLog(0, "gdbsrv",   6083         vgPlain_debugLog(0, "gdbsrv",
6084                          "VG_(gdbserver) called to terminate again %d\n",   6084                          "VG_(gdbserver) called to terminate again %d\n",
6085                          gdbserver_exited);   6085                          gdbserver_exited);
6086       } else {   6086       } else {
6087     6087  
6088       }   6088       }
6089       break;   6089       break;
6090     }   6090     }
6091   } else {   6091   } else {
6092     gdbserver_terminate();   6092     gdbserver_terminate();
6093     gdbserver_exited ++;   6093     gdbserver_exited ++;
6094   }   6094   }
6095   busy -= (int volatile   )1;   6095   busy -= (int volatile   )1;
6096   return;   6096   return;
6097 }   6097 }
6098 }   6098 }
6099 static int interrupts_while_busy  =    0;   6099 static int interrupts_while_busy  =    0;
6100 static int interrupts_non_busy  =    0;   6100 static int interrupts_non_busy  =    0;
6101 static int interrupts_non_interruptible  =    0;   6101 static int interrupts_non_interruptible  =    0;
6102 static void give_control_back_to_vgdb(void)   6102 static void give_control_back_to_vgdb(void)
6103 {   6103 {
6104   long tmp ;   6104   long tmp ;
6105   Int tmp___0 ;   6105   Int tmp___0 ;
6106   Int tmp___1 ;   6106   Int tmp___1 ;
6107   long tmp___2 ;   6107   long tmp___2 ;
6108     6108  
6109   {   6109   {
6110   tmp___0 = vgPlain_getpid();   6110   tmp___0 = vgPlain_getpid();
6111   tmp___1 = vgPlain_kill(tmp___0, 5);   6111   tmp___1 = vgPlain_kill(tmp___0, 5);
6112   if (tmp___1 != 0) {   6112   if (tmp___1 != 0) {
6113     tmp = __builtin_expect(0L, 1L);   6113     tmp = __builtin_expect(0L, 1L);
6114     if (tmp) {   6114     if (tmp) {
6115     6115  
6116     } else {   6116     } else {
6117       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6117       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6118                           (Char const   *)"m_gdbserver/m_gdbserver.c", 720,   6118                           (Char const   *)"m_gdbserver/m_gdbserver.c", 720,
6119                           (Char const   *)"give_control_back_to_vgdb",   6119                           (Char const   *)"give_control_back_to_vgdb",
6120                           "SIGTRAP for vgdb could not be generated\n");   6120                           "SIGTRAP for vgdb could not be generated\n");
6121     }   6121     }
6122   } else {   6122   } else {
6123     6123  
6124   }   6124   }
6125   tmp___2 = __builtin_expect(0L, 1L);   6125   tmp___2 = __builtin_expect(0L, 1L);
6126   if (tmp___2) {   6126   if (tmp___2) {
6127     6127  
6128   } else {   6128   } else {
6129     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6129     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6130                         (Char const   *)"m_gdbserver/m_gdbserver.c", 729,   6130                         (Char const   *)"m_gdbserver/m_gdbserver.c", 729,
6131                         (Char const   *)"give_control_back_to_vgdb",   6131                         (Char const   *)"give_control_back_to_vgdb",
6132                         "vgdb did not took control. Did you kill vgdb ?\nbusy %d vgdb_interrupted_tid %d\n",   6132                         "vgdb did not took control. Did you kill vgdb ?\nbusy %d vgdb_interrupted_tid %d\n",
6133                         busy, vgdb_interrupted_tid);   6133                         busy, vgdb_interrupted_tid);
6134   }   6134   }
6135   return;   6135   return;
6136 }   6136 }
6137 }   6137 }
6138 void vgPlain_invoke_gdbserver(int check )   6138 void vgPlain_invoke_gdbserver(int check )
6139 {   6139 {
6140   int n_tid ;   6140   int n_tid ;
6141   long tmp ;   6141   long tmp ;
6142   long tmp___0 ;   6142   long tmp___0 ;
6143   Int tmp___1 ;   6143   Int tmp___1 ;
6144   int tmp___2 ;   6144   int tmp___2 ;
6145   long tmp___3 ;   6145   long tmp___3 ;
6146   Int tmp___4 ;   6146   Int tmp___4 ;
6147   int tmp___5 ;   6147   int tmp___5 ;
6148   long tmp___6 ;   6148   long tmp___6 ;
6149   long tmp___7 ;   6149   long tmp___7 ;
6150     6150  
6151   {   6151   {
6152   tmp = __builtin_expect((long )(! (! ((unsigned int )check == 2343432205U))),   6152   tmp = __builtin_expect((long )(! (! ((unsigned int )check == 2343432205U))),
6153                          1L);   6153                          1L);
6154   if (tmp) {   6154   if (tmp) {
6155     6155  
6156   } else {   6156   } else {
6157     vgPlain_assert_fail((Bool )1, (Char const   *)"check == 0x8BADF00D",   6157     vgPlain_assert_fail((Bool )1, (Char const   *)"check == 0x8BADF00D",
6158                         (Char const   *)"m_gdbserver/m_gdbserver.c", 752,   6158                         (Char const   *)"m_gdbserver/m_gdbserver.c", 752,
6159                         (Char const   *)"vgPlain_invoke_gdbserver", "");   6159                         (Char const   *)"vgPlain_invoke_gdbserver", "");
6160   }   6160   }
6161   if (busy) {   6161   if (busy) {
6162     interrupts_while_busy ++;   6162     interrupts_while_busy ++;
6163     give_control_back_to_vgdb();   6163     give_control_back_to_vgdb();
6164   } else {   6164   } else {
6165     6165  
6166   }   6166   }
6167   interrupts_non_busy ++;   6167   interrupts_non_busy ++;
6168   n_tid = 1;   6168   n_tid = 1;
6169   while (n_tid < 500) {   6169   while (n_tid < 500) {
6170     switch ((unsigned int )vgPlain_threads[n_tid].status) {   6170     switch ((unsigned int )vgPlain_threads[n_tid].status) {
6171     case 4U:   6171     case 4U:
6172     case 3U:   6172     case 3U:
6173     if (vgdb_interrupted_tid == 0U) {   6173     if (vgdb_interrupted_tid == 0U) {
6174       vgdb_interrupted_tid = (ThreadId )n_tid;   6174       vgdb_interrupted_tid = (ThreadId )n_tid;
6175     } else {   6175     } else {
6176     6176  
6177     }   6177     }
6178     break;   6178     break;
6179     case 5U:   6179     case 5U:
6180     case 0U:   6180     case 0U:
6181     break;   6181     break;
6182     case 2U:   6182     case 2U:
6183     case 1U:   6183     case 1U:
6184     interrupts_non_interruptible ++;   6184     interrupts_non_interruptible ++;
6185     vgPlain_force_vgdb_poll();   6185     vgPlain_force_vgdb_poll();
6186     give_control_back_to_vgdb();   6186     give_control_back_to_vgdb();
6187     default:   6187     default:
6188     tmp___0 = __builtin_expect(0L, 1L);   6188     tmp___0 = __builtin_expect(0L, 1L);
6189     if (tmp___0) {   6189     if (tmp___0) {
6190     6190  
6191     } else {   6191     } else {
6192       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6192       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6193                           (Char const   *)"m_gdbserver/m_gdbserver.c", 782,   6193                           (Char const   *)"m_gdbserver/m_gdbserver.c", 782,
6194                           (Char const   *)"vgPlain_invoke_gdbserver", "");   6194                           (Char const   *)"vgPlain_invoke_gdbserver", "");
6195     }   6195     }
6196     }   6196     }
6197     n_tid ++;   6197     n_tid ++;
6198   }   6198   }
6199   while (1) {   6199   while (1) {
6200     tmp___1 = vgPlain_debugLog_getLevel();   6200     tmp___1 = vgPlain_debugLog_getLevel();
6201     if (tmp___1 >= 1) {   6201     if (tmp___1 >= 1) {
6202       tmp___2 = 1;   6202       tmp___2 = 1;
6203     } else {   6203     } else {
6204       tmp___2 = 0;   6204       tmp___2 = 0;
6205     }   6205     }
6206     tmp___3 = __builtin_expect((long )tmp___2, 0L);   6206     tmp___3 = __builtin_expect((long )tmp___2, 0L);
6207     if (tmp___3) {   6207     if (tmp___3) {
6208       vgPlain_debugLog(1, "gdbsrv",   6208       vgPlain_debugLog(1, "gdbsrv",
6209                        "invoke_gdbserver running_tid %d vgdb_interrupted_tid %d\n",   6209                        "invoke_gdbserver running_tid %d vgdb_interrupted_tid %d\n",
6210                        vgPlain_running_tid, vgdb_interrupted_tid);   6210                        vgPlain_running_tid, vgdb_interrupted_tid);
6211     } else {   6211     } else {
6212     6212  
6213     }   6213     }
6214     break;   6214     break;
6215   }   6215   }
6216   call_gdbserver(vgdb_interrupted_tid, (CallReason )1);   6216   call_gdbserver(vgdb_interrupted_tid, (CallReason )1);
6217   vgdb_interrupted_tid = (ThreadId )0;   6217   vgdb_interrupted_tid = (ThreadId )0;
6218   while (1) {   6218   while (1) {
6219     tmp___4 = vgPlain_debugLog_getLevel();   6219     tmp___4 = vgPlain_debugLog_getLevel();
6220     if (tmp___4 >= 1) {   6220     if (tmp___4 >= 1) {
6221       tmp___5 = 1;   6221       tmp___5 = 1;
6222     } else {   6222     } else {
6223       tmp___5 = 0;   6223       tmp___5 = 0;
6224     }   6224     }
6225     tmp___6 = __builtin_expect((long )tmp___5, 0L);   6225     tmp___6 = __builtin_expect((long )tmp___5, 0L);
6226     if (tmp___6) {   6226     if (tmp___6) {
6227       vgPlain_debugLog(1, "gdbsrv", "exit invoke_gdbserver running_tid %d\n",   6227       vgPlain_debugLog(1, "gdbsrv", "exit invoke_gdbserver running_tid %d\n",
6228                        vgPlain_running_tid);   6228                        vgPlain_running_tid);
6229     } else {   6229     } else {
6230     6230  
6231     }   6231     }
6232     break;   6232     break;
6233   }   6233   }
6234   give_control_back_to_vgdb();   6234   give_control_back_to_vgdb();
6235   tmp___7 = __builtin_expect(0L, 1L);   6235   tmp___7 = __builtin_expect(0L, 1L);
6236   if (tmp___7) {   6236   if (tmp___7) {
6237     6237  
6238   } else {   6238   } else {
6239     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6239     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6240                         (Char const   *)"m_gdbserver/m_gdbserver.c", 798,   6240                         (Char const   *)"m_gdbserver/m_gdbserver.c", 798,
6241                         (Char const   *)"vgPlain_invoke_gdbserver",   6241                         (Char const   *)"vgPlain_invoke_gdbserver",
6242                         "end of invoke_gdbserver reached");   6242                         "end of invoke_gdbserver reached");
6243   }   6243   }
6244   return;   6244   return;
6245 }   6245 }
6246 }   6246 }
6247 Bool vgPlain_gdbserver_activity(ThreadId tid )   6247 Bool vgPlain_gdbserver_activity(ThreadId tid )
6248 {   6248 {
6249   Bool ret ;   6249   Bool ret ;
6250   int tmp ;   6250   int tmp ;
6251   long tmp___0 ;   6251   long tmp___0 ;
6252     6252  
6253   {   6253   {
6254   busy += (int volatile   )1;   6254   busy += (int volatile   )1;
6255   if (! gdbserver_called) {   6255   if (! gdbserver_called) {
6256     call_gdbserver(tid, (CallReason )0);   6256     call_gdbserver(tid, (CallReason )0);
6257   } else {   6257   } else {
6258     6258  
6259   }   6259   }
6260   tmp = remote_desc_activity((char *)"VG_(gdbserver_activity)");   6260   tmp = remote_desc_activity((char *)"VG_(gdbserver_activity)");
6261   switch (tmp) {   6261   switch (tmp) {
6262   case 0:   6262   case 0:
6263   ret = (Bool )0;   6263   ret = (Bool )0;
6264   break;   6264   break;
6265   case 1:   6265   case 1:
6266   ret = (Bool )1;   6266   ret = (Bool )1;
6267   break;   6267   break;
6268   case 2:   6268   case 2:
6269   call_gdbserver(tid, (CallReason )0);   6269   call_gdbserver(tid, (CallReason )0);
6270   ret = (Bool )0;   6270   ret = (Bool )0;
6271   break;   6271   break;
6272   default:   6272   default:
6273   tmp___0 = __builtin_expect(0L, 1L);   6273   tmp___0 = __builtin_expect(0L, 1L);
6274   if (tmp___0) {   6274   if (tmp___0) {
6275     6275  
6276   } else {   6276   } else {
6277     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6277     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6278                         (Char const   *)"m_gdbserver/m_gdbserver.c", 812,   6278                         (Char const   *)"m_gdbserver/m_gdbserver.c", 812,
6279                         (Char const   *)"vgPlain_gdbserver_activity", "");   6279                         (Char const   *)"vgPlain_gdbserver_activity", "");
6280   }   6280   }
6281   }   6281   }
6282   busy -= (int volatile   )1;   6282   busy -= (int volatile   )1;
6283   return (ret);   6283   return (ret);
6284 }   6284 }
6285 }   6285 }
6286 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid )   6286 Bool vgPlain_gdbserver_report_signal(Int sigNo , ThreadId tid )
6287 {   6287 {
6288   Int tmp ;   6288   Int tmp ;
6289   int tmp___0 ;   6289   int tmp___0 ;
6290   long tmp___1 ;   6290   long tmp___1 ;
6291   Int tmp___2 ;   6291   Int tmp___2 ;
6292   int tmp___3 ;   6292   int tmp___3 ;
6293   long tmp___4 ;   6293   long tmp___4 ;
6294   Bool tmp___5 ;   6294   Bool tmp___5 ;
6295   Int tmp___6 ;   6295   Int tmp___6 ;
6296   int tmp___7 ;   6296   int tmp___7 ;
6297   long tmp___8 ;   6297   long tmp___8 ;
6298   Int tmp___9 ;   6298   Int tmp___9 ;
6299   int tmp___10 ;   6299   int tmp___10 ;
6300   long tmp___11 ;   6300   long tmp___11 ;
6301   Int tmp___12 ;   6301   Int tmp___12 ;
6302   int tmp___13 ;   6302   int tmp___13 ;
6303   long tmp___14 ;   6303   long tmp___14 ;
6304   Bool tmp___15 ;   6304   Bool tmp___15 ;
6305     6305  
6306   {   6306   {
6307   while (1) {   6307   while (1) {
6308     tmp = vgPlain_debugLog_getLevel();   6308     tmp = vgPlain_debugLog_getLevel();
6309     if (tmp >= 1) {   6309     if (tmp >= 1) {
6310       tmp___0 = 1;   6310       tmp___0 = 1;
6311     } else {   6311     } else {
6312       tmp___0 = 0;   6312       tmp___0 = 0;
6313     }   6313     }
6314     tmp___1 = __builtin_expect((long )tmp___0, 0L);   6314     tmp___1 = __builtin_expect((long )tmp___0, 0L);
6315     if (tmp___1) {   6315     if (tmp___1) {
6316       vgPlain_debugLog(1, "gdbsrv", "signal %d tid %d\n", sigNo, tid);   6316       vgPlain_debugLog(1, "gdbsrv", "signal %d tid %d\n", sigNo, tid);
6317     } else {   6317     } else {
6318     6318  
6319     }   6319     }
6320     break;   6320     break;
6321   }   6321   }
6322   tmp___5 = remote_connected();   6322   tmp___5 = remote_connected();
6323   if (tmp___5) {   6323   if (tmp___5) {
6324     6324  
6325   } else {   6325   } else {
6326     while (1) {   6326     while (1) {
6327       tmp___2 = vgPlain_debugLog_getLevel();   6327       tmp___2 = vgPlain_debugLog_getLevel();
6328       if (tmp___2 >= 1) {   6328       if (tmp___2 >= 1) {
6329         tmp___3 = 1;   6329         tmp___3 = 1;
6330       } else {   6330       } else {
6331         tmp___3 = 0;   6331         tmp___3 = 0;
6332       }   6332       }
6333       tmp___4 = __builtin_expect((long )tmp___3, 0L);   6333       tmp___4 = __builtin_expect((long )tmp___3, 0L);
6334       if (tmp___4) {   6334       if (tmp___4) {
6335         vgPlain_debugLog(1, "gdbsrv", "not connected => pass\n");   6335         vgPlain_debugLog(1, "gdbsrv", "not connected => pass\n");
6336       } else {   6336       } else {
6337     6337  
6338       }   6338       }
6339       break;   6339       break;
6340     }   6340     }
6341     return ((Bool )1);   6341     return ((Bool )1);
6342   }   6342   }
6343   if (pass_signals[sigNo]) {   6343   if (pass_signals[sigNo]) {
6344     while (1) {   6344     while (1) {
6345       tmp___6 = vgPlain_debugLog_getLevel();   6345       tmp___6 = vgPlain_debugLog_getLevel();
6346       if (tmp___6 >= 1) {   6346       if (tmp___6 >= 1) {
6347         tmp___7 = 1;   6347         tmp___7 = 1;
6348       } else {   6348       } else {
6349         tmp___7 = 0;   6349         tmp___7 = 0;
6350       }   6350       }
6351       tmp___8 = __builtin_expect((long )tmp___7, 0L);   6351       tmp___8 = __builtin_expect((long )tmp___7, 0L);
6352       if (tmp___8) {   6352       if (tmp___8) {
6353         vgPlain_debugLog(1, "gdbsrv", "pass_signals => pass\n");   6353         vgPlain_debugLog(1, "gdbsrv", "pass_signals => pass\n");
6354       } else {   6354       } else {
6355     6355  
6356       }   6356       }
6357       break;   6357       break;
6358     }   6358     }
6359     return ((Bool )0);   6359     return ((Bool )0);
6360   } else {   6360   } else {
6361     6361  
6362   }   6362   }
6363   gdbserver_signal_encountered(sigNo);   6363   gdbserver_signal_encountered(sigNo);
6364   call_gdbserver(tid, (CallReason )5);   6364   call_gdbserver(tid, (CallReason )5);
6365   tmp___15 = gdbserver_deliver_signal(sigNo);   6365   tmp___15 = gdbserver_deliver_signal(sigNo);
6366   if (tmp___15) {   6366   if (tmp___15) {
6367     while (1) {   6367     while (1) {
6368       tmp___9 = vgPlain_debugLog_getLevel();   6368       tmp___9 = vgPlain_debugLog_getLevel();
6369       if (tmp___9 >= 1) {   6369       if (tmp___9 >= 1) {
6370         tmp___10 = 1;   6370         tmp___10 = 1;
6371       } else {   6371       } else {
6372         tmp___10 = 0;   6372         tmp___10 = 0;
6373       }   6373       }
6374       tmp___11 = __builtin_expect((long )tmp___10, 0L);   6374       tmp___11 = __builtin_expect((long )tmp___10, 0L);
6375       if (tmp___11) {   6375       if (tmp___11) {
6376         vgPlain_debugLog(1, "gdbsrv", "gdbserver deliver signal\n");   6376         vgPlain_debugLog(1, "gdbsrv", "gdbserver deliver signal\n");
6377       } else {   6377       } else {
6378     6378  
6379       }   6379       }
6380       break;   6380       break;
6381     }   6381     }
6382     return ((Bool )1);   6382     return ((Bool )1);
6383   } else {   6383   } else {
6384     while (1) {   6384     while (1) {
6385       tmp___12 = vgPlain_debugLog_getLevel();   6385       tmp___12 = vgPlain_debugLog_getLevel();
6386       if (tmp___12 >= 1) {   6386       if (tmp___12 >= 1) {
6387         tmp___13 = 1;   6387         tmp___13 = 1;
6388       } else {   6388       } else {
6389         tmp___13 = 0;   6389         tmp___13 = 0;
6390       }   6390       }
6391       tmp___14 = __builtin_expect((long )tmp___13, 0L);   6391       tmp___14 = __builtin_expect((long )tmp___13, 0L);
6392       if (tmp___14) {   6392       if (tmp___14) {
6393         vgPlain_debugLog(1, "gdbsrv", "gdbserver ignore signal\n");   6393         vgPlain_debugLog(1, "gdbsrv", "gdbserver ignore signal\n");
6394       } else {   6394       } else {
6395     6395  
6396       }   6396       }
6397       break;   6397       break;
6398     }   6398     }
6399     return ((Bool )0);   6399     return ((Bool )0);
6400   }   6400   }
6401 }   6401 }
6402 }   6402 }
6403 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr )   6403 void ( __attribute__((__regparm__(1))) vgPlain_helperc_CallDebugger)(HWord iaddr )
6404 {   6404 {
6405   GS_Address *g ;   6405   GS_Address *g ;
6406   char *tmp ;   6406   char *tmp ;
6407   Int tmp___0 ;   6407   Int tmp___0 ;
6408   int tmp___1 ;   6408   int tmp___1 ;
6409   long tmp___2 ;   6409   long tmp___2 ;
6410   ThreadId tmp___3 ;   6410   ThreadId tmp___3 ;
6411   Bool tmp___4 ;   6411   Bool tmp___4 ;
6412   void *tmp___5 ;   6412   void *tmp___5 ;
6413     6413  
6414   {   6414   {
6415   if (! gdbserver_called) {   6415   if (! gdbserver_called) {
6416     return;   6416     return;
6417   } else {   6417   } else {
6418     6418  
6419   }   6419   }
6420   tmp___4 = valgrind_single_stepping();   6420   tmp___4 = valgrind_single_stepping();
6421   if (tmp___4) {   6421   if (tmp___4) {
6422     goto _L;   6422     goto _L;
6423   } else {   6423   } else {
6424     tmp___5 = vgPlain_HT_lookup(gs_addresses, iaddr);   6424     tmp___5 = vgPlain_HT_lookup(gs_addresses, iaddr);
6425     g = (GS_Address *)tmp___5;   6425     g = (GS_Address *)tmp___5;
6426     if (g) {   6426     if (g) {
6427       if ((unsigned int )g->kind == 0U) {   6427       if ((unsigned int )g->kind == 0U) {
6428         _L: /* CIL Label */   6428         _L: /* CIL Label */
6429         if (iaddr == ignore_this_break_once) {   6429         if (iaddr == ignore_this_break_once) {
6430           while (1) {   6430           while (1) {
6431             tmp___0 = vgPlain_debugLog_getLevel();   6431             tmp___0 = vgPlain_debugLog_getLevel();
6432             if (tmp___0 >= 1) {   6432             if (tmp___0 >= 1) {
6433               tmp___1 = 1;   6433               tmp___1 = 1;
6434             } else {   6434             } else {
6435               tmp___1 = 0;   6435               tmp___1 = 0;
6436             }   6436             }
6437             tmp___2 = __builtin_expect((long )tmp___1, 0L);   6437             tmp___2 = __builtin_expect((long )tmp___1, 0L);
6438             if (tmp___2) {   6438             if (tmp___2) {
6439               tmp = sym(ignore_this_break_once, (Bool )1);   6439               tmp = sym(ignore_this_break_once, (Bool )1);
6440               vgPlain_debugLog(1, "gdbsrv",   6440               vgPlain_debugLog(1, "gdbsrv",
6441                                "ignoring ignore_this_break_once %s\n", tmp);   6441                                "ignoring ignore_this_break_once %s\n", tmp);
6442             } else {   6442             } else {
6443     6443  
6444             }   6444             }
6445             break;   6445             break;
6446           }   6446           }
6447           ignore_this_break_once = (Addr )0;   6447           ignore_this_break_once = (Addr )0;
6448         } else {   6448         } else {
6449           tmp___3 = vgPlain_get_running_tid();   6449           tmp___3 = vgPlain_get_running_tid();
6450           call_gdbserver(tmp___3, (CallReason )3);   6450           call_gdbserver(tmp___3, (CallReason )3);
6451         }   6451         }
6452       } else {   6452       } else {
6453     6453  
6454       }   6454       }
6455     } else {   6455     } else {
6456     6456  
6457     }   6457     }
6458   }   6458   }
6459   return;   6459   return;
6460 }   6460 }
6461 }   6461 }
6462 static void vgPlain_invalidate_if_not_gdbserved(Addr addr )   6462 static void vgPlain_invalidate_if_not_gdbserved(Addr addr )
6463 {   6463 {
6464   Bool tmp ;   6464   Bool tmp ;
6465     6465  
6466   {   6466   {
6467   tmp = valgrind_single_stepping();   6467   tmp = valgrind_single_stepping();
6468   if (tmp) {   6468   if (tmp) {
6469     invalidate_if_jump_not_yet_gdbserved(addr,   6469     invalidate_if_jump_not_yet_gdbserved(addr,
6470                                          (char *)"gdbserver target jump (instrument)");   6470                                          (char *)"gdbserver target jump (instrument)");
6471   } else {   6471   } else {
6472     6472  
6473   }   6473   }
6474   return;   6474   return;
6475 }   6475 }
6476 }   6476 }
6477 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr )   6477 void ( __attribute__((__regparm__(1))) vgPlain_helperc_invalidate_if_not_gdbserved)(Addr addr )
6478 {   6478 {
6479   Bool tmp ;   6479   Bool tmp ;
6480     6480  
6481   {   6481   {
6482   tmp = valgrind_single_stepping();   6482   tmp = valgrind_single_stepping();
6483   if (tmp) {   6483   if (tmp) {
6484     invalidate_if_jump_not_yet_gdbserved(addr,   6484     invalidate_if_jump_not_yet_gdbserved(addr,
6485                                          (char *)"gdbserver target jump (runtime)");   6485                                          (char *)"gdbserver target jump (runtime)");
6486   } else {   6486   } else {
6487     6487  
6488   }   6488   }
6489   return;   6489   return;
6490 }   6490 }
6491 }   6491 }
6492 static void vgPlain_add_stmt_call_invalidate_if_not_gdbserved(IRSB *sb_in ,   6492 static void vgPlain_add_stmt_call_invalidate_if_not_gdbserved(IRSB *sb_in ,
6493                                                               VexGuestLayout *layout ,   6493                                                               VexGuestLayout *layout ,
6494                                                               VexGuestExtents *vge ,   6494                                                               VexGuestExtents *vge ,
6495                                                               IRTemp jmp ,   6495                                                               IRTemp jmp ,
6496                                                               IRSB *irsb )   6496                                                               IRSB *irsb )
6497 {   6497 {
6498   void *fn ;   6498   void *fn ;
6499   HChar *nm ;   6499   HChar *nm ;
6500   IRExpr **args ;   6500   IRExpr **args ;
6501   Int nargs ;   6501   Int nargs ;
6502   IRDirty *di ;   6502   IRDirty *di ;
6503   IRExpr *tmp ;   6503   IRExpr *tmp ;
6504   void *tmp___0 ;   6504   void *tmp___0 ;
6505   IRStmt *tmp___1 ;   6505   IRStmt *tmp___1 ;
6506     6506  
6507   {   6507   {
6508   fn = (void *)(& vgPlain_helperc_invalidate_if_not_gdbserved);   6508   fn = (void *)(& vgPlain_helperc_invalidate_if_not_gdbserved);
6509   nm = (HChar *)"VG_(helperc_invalidate_if_not_gdbserved)";   6509   nm = (HChar *)"VG_(helperc_invalidate_if_not_gdbserved)";
6510   tmp = IRExpr_RdTmp(jmp);   6510   tmp = IRExpr_RdTmp(jmp);
6511   args = mkIRExprVec_1(tmp);   6511   args = mkIRExprVec_1(tmp);
6512   nargs = 1;   6512   nargs = 1;
6513   tmp___0 = vgPlain_fnptr_to_fnentry(fn);   6513   tmp___0 = vgPlain_fnptr_to_fnentry(fn);
6514   di = unsafeIRDirty_0_N(nargs, nm, tmp___0, args);   6514   di = unsafeIRDirty_0_N(nargs, nm, tmp___0, args);
6515   di->nFxState = 0;   6515   di->nFxState = 0;
6516   tmp___1 = IRStmt_Dirty(di);   6516   tmp___1 = IRStmt_Dirty(di);
6517   addStmtToIRSB(irsb, tmp___1);   6517   addStmtToIRSB(irsb, tmp___1);
6518   return;   6518   return;
6519 }   6519 }
6520 }   6520 }
6521 static void vgPlain_add_stmt_call_gdbserver(IRSB *sb_in ,   6521 static void vgPlain_add_stmt_call_gdbserver(IRSB *sb_in ,
6522                                             VexGuestLayout *layout ,   6522                                             VexGuestLayout *layout ,
6523                                             VexGuestExtents *vge ,   6523                                             VexGuestExtents *vge ,
6524                                             IRType gWordTy , IRType hWordTy ,   6524                                             IRType gWordTy , IRType hWordTy ,
6525                                             Addr iaddr , IRSB *irsb )   6525                                             Addr iaddr , IRSB *irsb )
6526 {   6526 {
6527   void *fn ;   6527   void *fn ;
6528   HChar *nm ;   6528   HChar *nm ;
6529   IRExpr **args ;   6529   IRExpr **args ;
6530   Int nargs ;   6530   Int nargs ;
6531   IRDirty *di ;   6531   IRDirty *di ;
6532   IRExpr *tmp ;   6532   IRExpr *tmp ;
6533   IRStmt *tmp___0 ;   6533   IRStmt *tmp___0 ;
6534   IRExpr *tmp___1 ;   6534   IRExpr *tmp___1 ;
6535   void *tmp___2 ;   6535   void *tmp___2 ;
6536   IRStmt *tmp___3 ;   6536   IRStmt *tmp___3 ;
6537     6537  
6538   {   6538   {
6539   tmp = mkIRExpr_HWord(iaddr);   6539   tmp = mkIRExpr_HWord(iaddr);
6540   tmp___0 = IRStmt_Put(layout->offset_IP, tmp);   6540   tmp___0 = IRStmt_Put(layout->offset_IP, tmp);
6541   addStmtToIRSB(irsb, tmp___0);   6541   addStmtToIRSB(irsb, tmp___0);
6542   fn = (void *)(& vgPlain_helperc_CallDebugger);   6542   fn = (void *)(& vgPlain_helperc_CallDebugger);
6543   nm = (HChar *)"VG_(helperc_CallDebugger)";   6543   nm = (HChar *)"VG_(helperc_CallDebugger)";
6544   tmp___1 = mkIRExpr_HWord(iaddr);   6544   tmp___1 = mkIRExpr_HWord(iaddr);
6545   args = mkIRExprVec_1(tmp___1);   6545   args = mkIRExprVec_1(tmp___1);
6546   nargs = 1;   6546   nargs = 1;
6547   tmp___2 = vgPlain_fnptr_to_fnentry(fn);   6547   tmp___2 = vgPlain_fnptr_to_fnentry(fn);
6548   di = unsafeIRDirty_0_N(nargs, nm, tmp___2, args);   6548   di = unsafeIRDirty_0_N(nargs, nm, tmp___2, args);
6549   di->nFxState = 2;   6549   di->nFxState = 2;
6550   di->fxState[0].fx = (IREffect )94209;   6550   di->fxState[0].fx = (IREffect )94209;
6551   di->fxState[0].offset = layout->offset_SP;   6551   di->fxState[0].offset = layout->offset_SP;
6552   di->fxState[0].size = layout->sizeof_SP;   6552   di->fxState[0].size = layout->sizeof_SP;
6553   di->fxState[1].fx = (IREffect )94211;   6553   di->fxState[1].fx = (IREffect )94211;
6554   di->fxState[1].offset = layout->offset_IP;   6554   di->fxState[1].offset = layout->offset_IP;
6555   di->fxState[1].size = layout->sizeof_IP;   6555   di->fxState[1].size = layout->sizeof_IP;
6556   tmp___3 = IRStmt_Dirty(di);   6556   tmp___3 = IRStmt_Dirty(di);
6557   addStmtToIRSB(irsb, tmp___3);   6557   addStmtToIRSB(irsb, tmp___3);
6558   return;   6558   return;
6559 }   6559 }
6560 }   6560 }
6561 static void vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(IRSB *sb_in ,   6561 static void vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(IRSB *sb_in ,
6562                                                                           VexGuestLayout *layout ,   6562                                                                           VexGuestLayout *layout ,
6563                                                                           VexGuestExtents *vge ,   6563                                                                           VexGuestExtents *vge ,
6564                                                                           IRType gWordTy ,   6564                                                                           IRType gWordTy ,
6565                                                                           IRSB *irsb )   6565                                                                           IRSB *irsb )
6566 {   6566 {
6567   ULong tmp ;   6567   ULong tmp ;
6568   long tmp___0 ;   6568   long tmp___0 ;
6569     6569  
6570   {   6570   {
6571   if ((unsigned int )(sb_in->next)->tag == 86025U) {   6571   if ((unsigned int )(sb_in->next)->tag == 86025U) {
6572     if ((unsigned int )gWordTy == 69637U) {   6572     if ((unsigned int )gWordTy == 69637U) {
6573       tmp = ((sb_in->next)->Iex.Const.con)->Ico.U64;   6573       tmp = ((sb_in->next)->Iex.Const.con)->Ico.U64;
6574     } else {   6574     } else {
6575       tmp = (ULong )((sb_in->next)->Iex.Const.con)->Ico.U32;   6575       tmp = (ULong )((sb_in->next)->Iex.Const.con)->Ico.U32;
6576     }   6576     }
6577     vgPlain_invalidate_if_not_gdbserved((Addr )tmp);   6577     vgPlain_invalidate_if_not_gdbserved((Addr )tmp);
6578   } else   6578   } else
6579   if ((unsigned int )(sb_in->next)->tag == 86019U) {   6579   if ((unsigned int )(sb_in->next)->tag == 86019U) {
6580     vgPlain_add_stmt_call_invalidate_if_not_gdbserved(sb_in, layout, vge,   6580     vgPlain_add_stmt_call_invalidate_if_not_gdbserved(sb_in, layout, vge,
6581                                                       (sb_in->next)->Iex.RdTmp.tmp,   6581                                                       (sb_in->next)->Iex.RdTmp.tmp,
6582                                                       irsb);   6582                                                       irsb);
6583   } else {   6583   } else {
6584     tmp___0 = __builtin_expect(0L, 1L);   6584     tmp___0 = __builtin_expect(0L, 1L);
6585     if (tmp___0) {   6585     if (tmp___0) {
6586     6586  
6587     } else {   6587     } else {
6588       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6588       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6589                           (Char const   *)"m_gdbserver/m_gdbserver.c", 1026,   6589                           (Char const   *)"m_gdbserver/m_gdbserver.c", 1026,
6590                           (Char const   *)"vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved",   6590                           (Char const   *)"vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved",
6591                           "");   6591                           "");
6592     }   6592     }
6593   }   6593   }
6594   return;   6594   return;
6595 }   6595 }
6596 }   6596 }
6597 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,   6597 IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,
6598                                                  VexGuestLayout *layout ,   6598                                                  VexGuestLayout *layout ,
6599                                                  VexGuestExtents *vge ,   6599                                                  VexGuestExtents *vge ,
6600                                                  IRType gWordTy ,   6600                                                  IRType gWordTy ,
6601                                                  IRType hWordTy )   6601                                                  IRType hWordTy )
6602 {   6602 {
6603   IRSB *sb_out ;   6603   IRSB *sb_out ;
6604   Int i ;   6604   Int i ;
6605   VgVgdb instr_needed ;   6605   VgVgdb instr_needed ;
6606   VgVgdb tmp ;   6606   VgVgdb tmp ;
6607   IRStmt *st ;   6607   IRStmt *st ;
6608   ULong tmp___0 ;   6608   ULong tmp___0 ;
6609   long tmp___1 ;   6609   long tmp___1 ;
6610   long tmp___2 ;   6610   long tmp___2 ;
6611     6611  
6612   {   6612   {
6613   tmp = vgPlain_gdbserver_instrumentation_needed(vge);   6613   tmp = vgPlain_gdbserver_instrumentation_needed(vge);
6614   instr_needed = tmp;   6614   instr_needed = tmp;
6615   if ((unsigned int )instr_needed == 0U) {   6615   if ((unsigned int )instr_needed == 0U) {
6616     return (sb_in);   6616     return (sb_in);
6617   } else {   6617   } else {
6618     6618  
6619   }   6619   }
6620   sb_out = deepCopyIRSBExceptStmts(sb_in);   6620   sb_out = deepCopyIRSBExceptStmts(sb_in);
6621   i = 0;   6621   i = 0;
6622   while (i < sb_in->stmts_used) {   6622   while (i < sb_in->stmts_used) {
6623     st = *(sb_in->stmts + i);   6623     st = *(sb_in->stmts + i);
6624     if (! st) {   6624     if (! st) {
6625       goto __Cont;   6625       goto __Cont;
6626     } else   6626     } else
6627     if ((unsigned int )st->tag == 102400U) {   6627     if ((unsigned int )st->tag == 102400U) {
6628       goto __Cont;   6628       goto __Cont;
6629     } else {   6629     } else {
6630     6630  
6631     }   6631     }
6632     if ((unsigned int )st->tag == 102411U) {   6632     if ((unsigned int )st->tag == 102411U) {
6633       if ((unsigned int )instr_needed == 1U) {   6633       if ((unsigned int )instr_needed == 1U) {
6634         if ((unsigned int )hWordTy == 69637U) {   6634         if ((unsigned int )hWordTy == 69637U) {
6635           tmp___0 = (st->Ist.Exit.dst)->Ico.U64;   6635           tmp___0 = (st->Ist.Exit.dst)->Ico.U64;
6636         } else {   6636         } else {
6637           tmp___0 = (ULong )(st->Ist.Exit.dst)->Ico.U32;   6637           tmp___0 = (ULong )(st->Ist.Exit.dst)->Ico.U32;
6638         }   6638         }
6639         vgPlain_invalidate_if_not_gdbserved((Addr )tmp___0);   6639         vgPlain_invalidate_if_not_gdbserved((Addr )tmp___0);
6640       } else {   6640       } else {
6641     6641  
6642       }   6642       }
6643     } else {   6643     } else {
6644     6644  
6645     }   6645     }
6646     addStmtToIRSB(sb_out, st);   6646     addStmtToIRSB(sb_out, st);
6647     if ((unsigned int )st->tag == 102401U) {   6647     if ((unsigned int )st->tag == 102401U) {
6648       switch ((unsigned int )instr_needed) {   6648       switch ((unsigned int )instr_needed) {
6649       case 0U:   6649       case 0U:
6650       tmp___1 = __builtin_expect(0L, 1L);   6650       tmp___1 = __builtin_expect(0L, 1L);
6651       if (tmp___1) {   6651       if (tmp___1) {
6652     6652  
6653       } else {   6653       } else {
6654         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6654         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6655                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1062,   6655                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1062,
6656                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",   6656                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",
6657                             "");   6657                             "");
6658       }   6658       }
6659       case 2U:   6659       case 2U:
6660       case 1U:   6660       case 1U:
6661       vgPlain_add_stmt_call_gdbserver(sb_in, layout, vge, gWordTy, hWordTy,   6661       vgPlain_add_stmt_call_gdbserver(sb_in, layout, vge, gWordTy, hWordTy,
6662                                       (Addr )st->Ist.IMark.addr, sb_out);   6662                                       (Addr )st->Ist.IMark.addr, sb_out);
6663       break;   6663       break;
6664       default:   6664       default:
6665       tmp___2 = __builtin_expect(0L, 1L);   6665       tmp___2 = __builtin_expect(0L, 1L);
6666       if (tmp___2) {   6666       if (tmp___2) {
6667     6667  
6668       } else {   6668       } else {
6669         vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6669         vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6670                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1078,   6670                             (Char const   *)"m_gdbserver/m_gdbserver.c", 1078,
6671                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",   6671                             (Char const   *)"vgPlain_instrument_for_gdbserver_if_needed",
6672                             "");   6672                             "");
6673       }   6673       }
6674       }   6674       }
6675     } else {   6675     } else {
6676     6676  
6677     }   6677     }
6678     __Cont: /* CIL Label */   6678     __Cont: /* CIL Label */
6679     i ++;   6679     i ++;
6680   }   6680   }
6681   if ((unsigned int )instr_needed == 1U) {   6681   if ((unsigned int )instr_needed == 1U) {
6682     vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(sb_in, layout,   6682     vgPlain_add_stmt_call_invalidate_exit_target_if_not_gdbserved(sb_in, layout,
6683                                                                   vge, gWordTy,   6683                                                                   vge, gWordTy,
6684                                                                   sb_out);   6684                                                                   sb_out);
6685   } else {   6685   } else {
6686     6686  
6687   }   6687   }
6688   return (sb_out);   6688   return (sb_out);
6689 }   6689 }
6690 }   6690 }
6691 static void mon_out(HChar c , void *opaque )   6691 static void mon_out(HChar c , void *opaque )
6692 {   6692 {
6693   struct mon_out_buf *b ;   6693   struct mon_out_buf *b ;
6694     6694  
6695   {   6695   {
6696   b = (struct mon_out_buf *)opaque;   6696   b = (struct mon_out_buf *)opaque;
6697   (b->ret) ++;   6697   (b->ret) ++;
6698   b->buf[b->next] = c;   6698   b->buf[b->next] = c;
6699   (b->next) ++;   6699   (b->next) ++;
6700   if (b->next == 8189) {   6700   if (b->next == 8189) {
6701     b->buf[b->next] = (char )'\000';   6701     b->buf[b->next] = (char )'\000';
6702     monitor_output(b->buf);   6702     monitor_output(b->buf);
6703     b->next = 0;   6703     b->next = 0;
6704   } else {   6704   } else {
6705     6705  
6706   }   6706   }
6707   return;   6707   return;
6708 }   6708 }
6709 }   6709 }
6710 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...)   6710 UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format  , ...)
6711 {   6711 {
6712   struct mon_out_buf b ;   6712   struct mon_out_buf b ;
6713   va_list vargs ;   6713   va_list vargs ;
6714     6714  
6715   {   6715   {
6716   b.next = 0;   6716   b.next = 0;
6717   b.ret = (UInt )0;   6717   b.ret = (UInt )0;
6718   __builtin_va_start(vargs, format);   6718   __builtin_va_start(vargs, format);
6719   vgPlain_vcbprintf(& mon_out, (void *)(& b), format, vargs);   6719   vgPlain_vcbprintf(& mon_out, (void *)(& b), format, vargs);
6720   __builtin_va_end(vargs);   6720   __builtin_va_end(vargs);
6721   if (b.next > 0) {   6721   if (b.next > 0) {
6722     b.buf[b.next] = (char )'\000';   6722     b.buf[b.next] = (char )'\000';
6723     monitor_output(b.buf);   6723     monitor_output(b.buf);
6724   } else {   6724   } else {
6725     6725  
6726   }   6726   }
6727   return (b.ret);   6727   return (b.ret);
6728 }   6728 }
6729 }   6729 }
6730 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   6730 Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
6731                        kwd_report_error report )   6731                        kwd_report_error report )
6732 {   6732 {
6733   Int il ;   6733   Int il ;
6734   SizeT tmp ;   6734   SizeT tmp ;
6735   SizeT tmp___0 ;   6735   SizeT tmp___0 ;
6736   Char *iw ;   6736   Char *iw ;
6737   unsigned int __lengthofiw ;   6737   unsigned int __lengthofiw ;
6738   void *tmp___1 ;   6738   void *tmp___1 ;
6739   SizeT tmp___2 ;   6739   SizeT tmp___2 ;
6740   Char *kwds ;   6740   Char *kwds ;
6741   unsigned int __lengthofkwds ;   6741   unsigned int __lengthofkwds ;
6742   void *tmp___3 ;   6742   void *tmp___3 ;
6743   Char *kwdssaveptr ;   6743   Char *kwdssaveptr ;
6744   Char *kw ;   6744   Char *kw ;
6745   Int kwl ;   6745   Int kwl ;
6746   Int kpos ;   6746   Int kpos ;
6747   Int pass ;   6747   Int pass ;
6748   Int pass1needed ;   6748   Int pass1needed ;
6749   Int partial_match ;   6749   Int partial_match ;
6750   Int full_match ;   6750   Int full_match ;
6751   char const   *tmp___4 ;   6751   char const   *tmp___4 ;
6752   SizeT tmp___5 ;   6752   SizeT tmp___5 ;
6753   Int tmp___6 ;   6753   Int tmp___6 ;
6754   Int tmp___7 ;   6754   Int tmp___7 ;
6755   long tmp___8 ;   6755   long tmp___8 ;
6756     6756  
6757   {   6757   {
6758   if ((unsigned int )input_word == (unsigned int )((void *)0)) {   6758   if ((unsigned int )input_word == (unsigned int )((void *)0)) {
6759     tmp___0 = (SizeT )0;   6759     tmp___0 = (SizeT )0;
6760   } else {   6760   } else {
6761     tmp = vgPlain_strlen((Char const   *)input_word);   6761     tmp = vgPlain_strlen((Char const   *)input_word);
6762     tmp___0 = tmp;   6762     tmp___0 = tmp;
6763   }   6763   }
6764   il = (Int )tmp___0;   6764   il = (Int )tmp___0;
6765   __lengthofiw = (unsigned int )(il + 1);   6765   __lengthofiw = (unsigned int )(il + 1);
6766   tmp___1 = __builtin_alloca(sizeof(*iw) * __lengthofiw);   6766   tmp___1 = __builtin_alloca(sizeof(*iw) * __lengthofiw);
6767   iw = (Char *)tmp___1;   6767   iw = (Char *)tmp___1;
6768   tmp___2 = vgPlain_strlen((Char const   *)keywords);   6768   tmp___2 = vgPlain_strlen((Char const   *)keywords);
6769   __lengthofkwds = (unsigned int )(tmp___2 + 1UL);   6769   __lengthofkwds = (unsigned int )(tmp___2 + 1UL);
6770   tmp___3 = __builtin_alloca(sizeof(*kwds) * __lengthofkwds);   6770   tmp___3 = __builtin_alloca(sizeof(*kwds) * __lengthofkwds);
6771   kwds = (Char *)tmp___3;   6771   kwds = (Char *)tmp___3;
6772   kpos = -1;   6772   kpos = -1;
6773   pass1needed = 0;   6773   pass1needed = 0;
6774   partial_match = -1;   6774   partial_match = -1;
6775   full_match = -1;   6775   full_match = -1;
6776   if ((unsigned int )input_word == (unsigned int )((void *)0)) {   6776   if ((unsigned int )input_word == (unsigned int )((void *)0)) {
6777     *(iw + 0) = (Char )0;   6777     *(iw + 0) = (Char )0;
6778     partial_match = 0;   6778     partial_match = 0;
6779   } else {   6779   } else {
6780     vgPlain_strcpy(iw, (Char const   *)input_word);   6780     vgPlain_strcpy(iw, (Char const   *)input_word);
6781   }   6781   }
6782   pass = 0;   6782   pass = 0;
6783   while (pass < 2) {   6783   while (pass < 2) {
6784     vgPlain_strcpy(kwds, (Char const   *)keywords);   6784     vgPlain_strcpy(kwds, (Char const   *)keywords);
6785     if (pass == 1) {   6785     if (pass == 1) {
6786       if (il == 0) {   6786       if (il == 0) {
6787         tmp___4 = "<empty string>";   6787         tmp___4 = "<empty string>";
6788       } else {   6788       } else {
6789         tmp___4 = (char const   *)((char *)iw);   6789         tmp___4 = (char const   *)((char *)iw);
6790       }   6790       }
6791       vgPlain_gdb_printf("%s can match", tmp___4);   6791       vgPlain_gdb_printf("%s can match", tmp___4);
6792     } else {   6792     } else {
6793     6793  
6794     }   6794     }
6795     kw = vgPlain_strtok_r(kwds, (Char const   *)" ", & kwdssaveptr);   6795     kw = vgPlain_strtok_r(kwds, (Char const   *)" ", & kwdssaveptr);
6796     while ((unsigned int )kw != (unsigned int )((void *)0)) {   6796     while ((unsigned int )kw != (unsigned int )((void *)0)) {
6797       tmp___5 = vgPlain_strlen((Char const   *)kw);   6797       tmp___5 = vgPlain_strlen((Char const   *)kw);
6798       kwl = (Int )tmp___5;   6798       kwl = (Int )tmp___5;
6799       kpos ++;   6799       kpos ++;
6800       if (il > kwl) {   6800       if (il > kwl) {
6801     6801  
6802       } else   6802       } else
6803       if (il == kwl) {   6803       if (il == kwl) {
6804         tmp___6 = vgPlain_strcmp((Char const   *)kw, (Char const   *)iw);   6804         tmp___6 = vgPlain_strcmp((Char const   *)kw, (Char const   *)iw);
6805         if (tmp___6 == 0) {   6805         if (tmp___6 == 0) {
6806           if (pass == 1) {   6806           if (pass == 1) {
6807             vgPlain_gdb_printf(" %s", kw);   6807             vgPlain_gdb_printf(" %s", kw);
6808           } else {   6808           } else {
6809     6809  
6810           }   6810           }
6811           if (full_match != -1) {   6811           if (full_match != -1) {
6812             pass1needed ++;   6812             pass1needed ++;
6813           } else {   6813           } else {
6814     6814  
6815           }   6815           }
6816           full_match = kpos;   6816           full_match = kpos;
6817         } else {   6817         } else {
6818     6818  
6819         }   6819         }
6820       } else {   6820       } else {
6821         tmp___7 = vgPlain_strncmp((Char const   *)iw, (Char const   *)kw,   6821         tmp___7 = vgPlain_strncmp((Char const   *)iw, (Char const   *)kw,
6822                                   (SizeT )il);   6822                                   (SizeT )il);
6823         if (tmp___7 == 0) {   6823         if (tmp___7 == 0) {
6824           if (pass == 1) {   6824           if (pass == 1) {
6825             vgPlain_gdb_printf(" %s", kw);   6825             vgPlain_gdb_printf(" %s", kw);
6826           } else {   6826           } else {
6827     6827  
6828           }   6828           }
6829           if (partial_match != -1) {   6829           if (partial_match != -1) {
6830             pass1needed ++;   6830             pass1needed ++;
6831           } else {   6831           } else {
6832     6832  
6833           }   6833           }
6834           partial_match = kpos;   6834           partial_match = kpos;
6835         } else {   6835         } else {
6836     6836  
6837         }   6837         }
6838       }   6838       }
6839       kw = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ",   6839       kw = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ",
6840                             & kwdssaveptr);   6840                             & kwdssaveptr);
6841     }   6841     }
6842     if (pass1needed == 0) {   6842     if (pass1needed == 0) {
6843       if (full_match != -1) {   6843       if (full_match != -1) {
6844         return (full_match);   6844         return (full_match);
6845       } else {   6845       } else {
6846         if ((unsigned int )report == 1U) {   6846         if ((unsigned int )report == 1U) {
6847           if (partial_match == -1) {   6847           if (partial_match == -1) {
6848             vgPlain_gdb_printf("%s does not match any of \'%s\'\n", iw, keywords);   6848             vgPlain_gdb_printf("%s does not match any of \'%s\'\n", iw, keywords);
6849           } else {   6849           } else {
6850     6850  
6851           }   6851           }
6852         } else {   6852         } else {
6853     6853  
6854         }   6854         }
6855         return (partial_match);   6855         return (partial_match);
6856       }   6856       }
6857     } else {   6857     } else {
6858     6858  
6859     }   6859     }
6860     if (pass == 1) {   6860     if (pass == 1) {
6861       goto _L;   6861       goto _L;
6862     } else   6862     } else
6863     if ((unsigned int )report == 0U) {   6863     if ((unsigned int )report == 0U) {
6864       _L: /* CIL Label */   6864       _L: /* CIL Label */
6865       if ((unsigned int )report != 0U) {   6865       if ((unsigned int )report != 0U) {
6866         vgPlain_gdb_printf("\n");   6866         vgPlain_gdb_printf("\n");
6867       } else {   6867       } else {
6868     6868  
6869       }   6869       }
6870       if (partial_match != -1) {   6870       if (partial_match != -1) {
6871         return (-2);   6871         return (-2);
6872       } else   6872       } else
6873       if (full_match != -1) {   6873       if (full_match != -1) {
6874         return (-2);   6874         return (-2);
6875       } else {   6875       } else {
6876         return (-1);   6876         return (-1);
6877       }   6877       }
6878     } else {   6878     } else {
6879     6879  
6880     }   6880     }
6881     pass ++;   6881     pass ++;
6882   }   6882   }
6883   tmp___8 = __builtin_expect(0L, 1L);   6883   tmp___8 = __builtin_expect(0L, 1L);
6884   if (tmp___8) {   6884   if (tmp___8) {
6885     6885  
6886   } else {   6886   } else {
6887     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6887     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6888                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1215,   6888                         (Char const   *)"m_gdbserver/m_gdbserver.c", 1215,
6889                         (Char const   *)"vgPlain_keyword_id", "");   6889                         (Char const   *)"vgPlain_keyword_id", "");
6890   }   6890   }
6891   return (0);   6891   return (0);
6892 }   6892 }
6893 }   6893 }
6894 static Bool is_zero_x(Char *s )   6894 static Bool is_zero_x(Char *s )
6895 {   6895 {
6896   SizeT tmp ;   6896   SizeT tmp ;
6897     6897  
6898   {   6898   {
6899   tmp = vgPlain_strlen((Char const   *)s);   6899   tmp = vgPlain_strlen((Char const   *)s);
6900   if (tmp >= 3UL) {   6900   if (tmp >= 3UL) {
6901     if ((int )*(s + 0) == 48) {   6901     if ((int )*(s + 0) == 48) {
6902       if ((int )*(s + 1) == 120) {   6902       if ((int )*(s + 1) == 120) {
6903         return ((Bool )1);   6903         return ((Bool )1);
6904       } else {   6904       } else {
6905         return ((Bool )0);   6905         return ((Bool )0);
6906       }   6906       }
6907     } else {   6907     } else {
6908       return ((Bool )0);   6908       return ((Bool )0);
6909     }   6909     }
6910   } else {   6910   } else {
6911     return ((Bool )0);   6911     return ((Bool )0);
6912   }   6912   }
6913 }   6913 }
6914 }   6914 }
6915 static Bool is_zero_b(Char *s )   6915 static Bool is_zero_b(Char *s )
6916 {   6916 {
6917   SizeT tmp ;   6917   SizeT tmp ;
6918     6918  
6919   {   6919   {
6920   tmp = vgPlain_strlen((Char const   *)s);   6920   tmp = vgPlain_strlen((Char const   *)s);
6921   if (tmp >= 3UL) {   6921   if (tmp >= 3UL) {
6922     if ((int )*(s + 0) == 48) {   6922     if ((int )*(s + 0) == 48) {
6923       if ((int )*(s + 1) == 98) {   6923       if ((int )*(s + 1) == 98) {
6924         return ((Bool )1);   6924         return ((Bool )1);
6925       } else {   6925       } else {
6926         return ((Bool )0);   6926         return ((Bool )0);
6927       }   6927       }
6928     } else {   6928     } else {
6929       return ((Bool )0);   6929       return ((Bool )0);
6930     }   6930     }
6931   } else {   6931   } else {
6932     return ((Bool )0);   6932     return ((Bool )0);
6933   }   6933   }
6934 }   6934 }
6935 }   6935 }
6936 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   6936 void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
6937                                          Char **ssaveptr )   6937                                          Char **ssaveptr )
6938 {   6938 {
6939   Char *wa ;   6939   Char *wa ;
6940   Char *ws ;   6940   Char *ws ;
6941   Char *endptr ;   6941   Char *endptr ;
6942   UChar *ppc ;   6942   UChar *ppc ;
6943   Bool tmp ;   6943   Bool tmp ;
6944   ULong tmp___0 ;   6944   ULong tmp___0 ;
6945   Int j ;   6945   Int j ;
6946   Char *parsews ;   6946   Char *parsews ;
6947   Int n_bits ;   6947   Int n_bits ;
6948   SizeT tmp___1 ;   6948   SizeT tmp___1 ;
6949   ULong tmp___2 ;   6949   ULong tmp___2 ;
6950   Bool tmp___3 ;   6950   Bool tmp___3 ;
6951   Bool tmp___4 ;   6951   Bool tmp___4 ;
6952     6952  
6953   {   6953   {
6954   wa = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);   6954   wa = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);
6955   ppc = (UChar *)wa;   6955   ppc = (UChar *)wa;
6956   if ((unsigned int )ppc == (unsigned int )((void *)0)) {   6956   if ((unsigned int )ppc == (unsigned int )((void *)0)) {
6957     vgPlain_gdb_printf("missing or malformed address\n");   6957     vgPlain_gdb_printf("missing or malformed address\n");
6958     *address = (Addr )0;   6958     *address = (Addr )0;
6959     *szB = (SizeT )0;   6959     *szB = (SizeT )0;
6960     return;   6960     return;
6961   } else {   6961   } else {
6962     tmp = vgPlain_parse_Addr(& ppc, address);   6962     tmp = vgPlain_parse_Addr(& ppc, address);
6963     if (tmp) {   6963     if (tmp) {
6964     6964  
6965     } else {   6965     } else {
6966       vgPlain_gdb_printf("missing or malformed address\n");   6966       vgPlain_gdb_printf("missing or malformed address\n");
6967       *address = (Addr )0;   6967       *address = (Addr )0;
6968       *szB = (SizeT )0;   6968       *szB = (SizeT )0;
6969       return;   6969       return;
6970     }   6970     }
6971   }   6971   }
6972   ws = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);   6972   ws = vgPlain_strtok_r((Char *)((void *)0), (Char const   *)" ", ssaveptr);
6973   if ((unsigned int )ws == (unsigned int )((void *)0)) {   6973   if ((unsigned int )ws == (unsigned int )((void *)0)) {
6974     6974  
6975   } else {   6975   } else {
6976     tmp___4 = is_zero_x(ws);   6976     tmp___4 = is_zero_x(ws);
6977     if (tmp___4) {   6977     if (tmp___4) {
6978       tmp___0 = vgPlain_strtoull16(ws, & endptr);   6978       tmp___0 = vgPlain_strtoull16(ws, & endptr);
6979       *szB = (SizeT )tmp___0;   6979       *szB = (SizeT )tmp___0;
6980     } else {   6980     } else {
6981       tmp___3 = is_zero_b(ws);   6981       tmp___3 = is_zero_b(ws);
6982       if (tmp___3) {   6982       if (tmp___3) {
6983         parsews = ws;   6983         parsews = ws;
6984         tmp___1 = vgPlain_strlen((Char const   *)ws);   6984         tmp___1 = vgPlain_strlen((Char const   *)ws);
6985         n_bits = (Int )(tmp___1 - 2UL);   6985         n_bits = (Int )(tmp___1 - 2UL);
6986         *szB = (SizeT )0;   6986         *szB = (SizeT )0;
6987         ws = (Char *)((void *)0);   6987         ws = (Char *)((void *)0);
6988         j = 0;   6988         j = 0;
6989         while (j < n_bits) {   6989         while (j < n_bits) {
6990           if (48 == (int )*(parsews + (j + 2))) {   6990           if (48 == (int )*(parsews + (j + 2))) {
6991     6991  
6992           } else   6992           } else
6993           if (49 == (int )*(parsews + (j + 2))) {   6993           if (49 == (int )*(parsews + (j + 2))) {
6994             *szB |= (unsigned long )(1 << ((n_bits - j) - 1));   6994             *szB |= (unsigned long )(1 << ((n_bits - j) - 1));
6995           } else {   6995           } else {
6996             ws = parsews;   6996             ws = parsews;
6997             endptr = (ws + j) + 2;   6997             endptr = (ws + j) + 2;
6998             break;   6998             break;
6999           }   6999           }
7000           j ++;   7000           j ++;
7001         }   7001         }
7002       } else {   7002       } else {
7003         tmp___2 = vgPlain_strtoull10(ws, & endptr);   7003         tmp___2 = vgPlain_strtoull10(ws, & endptr);
7004         *szB = (SizeT )tmp___2;   7004         *szB = (SizeT )tmp___2;
7005       }   7005       }
7006     }   7006     }
7007   }   7007   }
7008   if ((unsigned int )ws != (unsigned int )((void *)0)) {   7008   if ((unsigned int )ws != (unsigned int )((void *)0)) {
7009     if ((int )*endptr != 0) {   7009     if ((int )*endptr != 0) {
7010       vgPlain_gdb_printf("malformed integer, expecting hex 0x..... or dec ...... or binary .....b\n");   7010       vgPlain_gdb_printf("malformed integer, expecting hex 0x..... or dec ...... or binary .....b\n");
7011       *address = (Addr )0;   7011       *address = (Addr )0;
7012       *szB = (SizeT )0;   7012       *szB = (SizeT )0;
7013       return;   7013       return;
7014     } else {   7014     } else {
7015     7015  
7016     }   7016     }
7017   } else {   7017   } else {
7018     7018  
7019   }   7019   }
7020   return;   7020   return;
7021 }   7021 }
7022 }   7022 }
7023 void vgPlain_gdbserver_status_output(void)   7023 void vgPlain_gdbserver_status_output(void)
7024 {   7024 {
7025   int nr_gdbserved_addresses ;   7025   int nr_gdbserved_addresses ;
7026   Int tmp ;   7026   Int tmp ;
7027   int tmp___0 ;   7027   int tmp___0 ;
7028   int nr_watchpoints ;   7028   int nr_watchpoints ;
7029   Int tmp___1 ;   7029   Int tmp___1 ;
7030   int tmp___2 ;   7030   int tmp___2 ;
7031   Bool tmp___3 ;   7031   Bool tmp___3 ;
7032     7032  
7033   {   7033   {
7034   if ((unsigned int )gs_addresses == (unsigned int )((void *)0)) {   7034   if ((unsigned int )gs_addresses == (unsigned int )((void *)0)) {
7035     tmp___0 = -1;   7035     tmp___0 = -1;
7036   } else {   7036   } else {
7037     tmp = vgPlain_HT_count_nodes(gs_addresses);   7037     tmp = vgPlain_HT_count_nodes(gs_addresses);
7038     tmp___0 = tmp;   7038     tmp___0 = tmp;
7039   }   7039   }
7040   nr_gdbserved_addresses = tmp___0;   7040   nr_gdbserved_addresses = tmp___0;
7041   if ((unsigned int )gs_watches == (unsigned int )((void *)0)) {   7041   if ((unsigned int )gs_watches == (unsigned int )((void *)0)) {
7042     tmp___2 = -1;   7042     tmp___2 = -1;
7043   } else {   7043   } else {
7044     tmp___1 = vgPlain_HT_count_nodes(gs_watches);   7044     tmp___1 = vgPlain_HT_count_nodes(gs_watches);
7045     tmp___2 = tmp___1;   7045     tmp___2 = tmp___1;
7046   }   7046   }
7047   nr_watchpoints = tmp___2;   7047   nr_watchpoints = tmp___2;
7048   remote_utils_output_status();   7048   remote_utils_output_status();
7049   tmp___3 = valgrind_single_stepping();   7049   tmp___3 = valgrind_single_stepping();
7050   vgPlain_umsg("nr of calls to gdbserver: %d\nsingle stepping %d\ninterrupts intr_tid %d gs_non_busy %d gs_busy %d tid_non_intr %d\ngdbserved addresses %d (-1 = not initialized)\nwatchpoints %d (-1 = not initialized)\nvgdb-error %d\n",   7050   vgPlain_umsg("nr of calls to gdbserver: %d\nsingle stepping %d\ninterrupts intr_tid %d gs_non_busy %d gs_busy %d tid_non_intr %d\ngdbserved addresses %d (-1 = not initialized)\nwatchpoints %d (-1 = not initialized)\nvgdb-error %d\n",
7051                gdbserver_called, (int )tmp___3, vgdb_interrupted_tid,   7051                gdbserver_called, (int )tmp___3, vgdb_interrupted_tid,
7052                interrupts_non_busy, interrupts_while_busy,   7052                interrupts_non_busy, interrupts_while_busy,
7053                interrupts_non_interruptible, nr_gdbserved_addresses,   7053                interrupts_non_interruptible, nr_gdbserved_addresses,
7054                nr_watchpoints, vgPlain_dyn_vgdb_error);   7054                nr_watchpoints, vgPlain_dyn_vgdb_error);
7055   return;   7055   return;
7056 }   7056 }
7057 }   7057 }